2

カスタム ビューを持つリストビュー用のカスタム アダプターを作成しました。

ボタンを押すと、リストビュー項目の背景 (項目のカスタム ビューのレイアウトの背景色) を変更したいと思います。

それは可能ですか?すべてのリストビュー項目を一度に変更することは可能ですか、それとも 1 つずつ変更する必要がありますか?

4

3 に答える 3

0

このようなことを試してください

ListView mView;
...
int c = mView.getChildCount()
for(int i = 0; i < c; i++){
   View v = mView.getChildAt(i);
   v.setBackgroundColor(color);
}

私の知る限り、すべての子ビューに色を設定する方法はありません。その場合でも、バックグラウンドですべてのビューにわたって反復処理が行われます。

于 2012-08-24T11:02:25.410 に答える
0

すべての子を反復する代わりに、バインダーで色の変更を行い、ListView に項目を強制的に再バインドさせることができます (アダプターのデータ変更メソッドを使用)。そうすれば、ListView のビュー階層の内部を突っ込むことはありません。これは、一般的に非常に悪い習慣と考えられています。

于 2012-08-24T16:19:24.567 に答える
0

「customview」を使用して「listitems」を膨らませた場合は、カスタム アダプターで customview の要素 (例: ボタン) をバインドし、それらの onclick リスナーを設定します。

これを参照できます:リストビューの各行内の要素の状態を保持します

私のカスタム アダプターでは、カスタム ビューの 1 つの TextView と 2 つのボタンをバインドし、クリック リスナーに実装しました。

お役に立てば幸いです。

于 2012-08-24T16:06:08.210 に答える