カスタム ビューを持つリストビュー用のカスタム アダプターを作成しました。
ボタンを押すと、リストビュー項目の背景 (項目のカスタム ビューのレイアウトの背景色) を変更したいと思います。
それは可能ですか?すべてのリストビュー項目を一度に変更することは可能ですか、それとも 1 つずつ変更する必要がありますか?
カスタム ビューを持つリストビュー用のカスタム アダプターを作成しました。
ボタンを押すと、リストビュー項目の背景 (項目のカスタム ビューのレイアウトの背景色) を変更したいと思います。
それは可能ですか?すべてのリストビュー項目を一度に変更することは可能ですか、それとも 1 つずつ変更する必要がありますか?
このようなことを試してください
ListView mView;
...
int c = mView.getChildCount()
for(int i = 0; i < c; i++){
View v = mView.getChildAt(i);
v.setBackgroundColor(color);
}
私の知る限り、すべての子ビューに色を設定する方法はありません。その場合でも、バックグラウンドですべてのビューにわたって反復処理が行われます。
すべての子を反復する代わりに、バインダーで色の変更を行い、ListView に項目を強制的に再バインドさせることができます (アダプターのデータ変更メソッドを使用)。そうすれば、ListView のビュー階層の内部を突っ込むことはありません。これは、一般的に非常に悪い習慣と考えられています。
「customview」を使用して「listitems」を膨らませた場合は、カスタム アダプターで customview の要素 (例: ボタン) をバインドし、それらの onclick リスナーを設定します。
これを参照できます:リストビューの各行内の要素の状態を保持します
私のカスタム アダプターでは、カスタム ビューの 1 つの TextView と 2 つのボタンをバインドし、クリック リスナーに実装しました。
お役に立てば幸いです。