AndroidStudioでJavaを使ってアプリを作ってます。 ListViewを使って、TextViewとButtonを、画面からはみ出るぐらいたくさん作りました。
AndroidStudioでJavaを使ってアプリを作ってます。 ListViewを使って、TextViewとButtonを、画面からはみ出るぐらいたくさん作りました。 Buttonを押したら、Buttonが赤くなるように、 btnObject.setBackgroundColor(Color.rgb(255, 0, 0)); したところ、ちゃんとボタンが赤くなったのですが、 画面をスクロールして、赤くなったボタンを画面外に持っていって元の画面に戻すと、赤かったボタンが元のグレーの色に戻ってしまいます。 画面をスクロールしても、ボタンの色が赤いままにするやり方を教えてください。
ベストアンサー
ListViewの各リストアイテムは画面上に表示するときのためだけにあるもので、「ボタンが赤い」と言う情報を憶えさせることは出来ません。画面外に行ったら破棄されます。 どうやってそのListViewにテキストを表示させていますか? 多分リストか何かで表示すべきテキストののリストを持っていると思いますが、そのテキストと一緒にボタンが赤いかどうかという情報も持っておいて、テキストをTextViewに設定するときにボタンにも設定する必要があります。 その上で、ボタンが押されたらリスト上の情報を更新するという処理をします。
2人がナイス!しています
質問者からのお礼コメント
回答ありがとうございます。 やはり、どこかのプロパティをオンにするだけというわけにはいかないのですね。 非常に長いリストなので、リスト上のボタンの色を、更新するのは、負荷がかかるような気がします。 とりあえず、諦める方向で考えます。
お礼日時:4/29 23:35