回答編集履歴
2
表現修正
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
件の場合, クリックしたことで背景色を直接更新していますが, これだけでは再表示した際には元に戻ってしまいます.
|
10
10
|
|
11
|
-
ラジオボタンのような動作をさせるのでしたら, どの行が
|
11
|
+
ラジオボタンのような動作をさせるのでしたら, どの行が選択状態なのか(=背景色を変える行はどこか)を保持しておく必要は当然ありますし, それを元に getView で「その行だったら背景色を Red, 違うなら White(?) 」という処理を入れます.
|
12
12
|
|
13
13
|
これで, 最後にクリックされた行の getView だけが背景色の違う View を返すことになりますので, その前にクリックされていた行は背景色が戻るようになります.
|
14
14
|
|
1
表現微修正
test
CHANGED
@@ -12,4 +12,4 @@
|
|
12
12
|
|
13
13
|
これで, 最後にクリックされた行の getView だけが背景色の違う View を返すことになりますので, その前にクリックされていた行は背景色が戻るようになります.
|
14
14
|
|
15
|
-
ですが, これだけではその「先にクリックされていた行」は再表示されません. そこで, 再表示が必要であることを示す「その行のデータが変更された」というメッセージ(notify~) を Adapter のメソッドで ListView に投げます. すると ListView がその行の getView を呼び, 返された(背景色が戻った) View を表示します.
|
15
|
+
ですが, これだけではその「先にクリックされていた行」は再表示されません. そこで, 再表示が必要であることを示す「その行のデータが変更された」というメッセージ(notify~) を Adapter のメソッドで ListView に投げます. すると ListView がその行の getView を呼び, 返された(背景色が戻った) View を再表示してくれます.
|