0

ListViewをクリックして背景色を変更しようとしています。私のコードは次のようになります。

@Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {          
        arg1.setBackgroundColor(Color.GREEN);
    }

奇妙なことに、アイテム番号 7 をクリックすると、アイテム 7 の背景が変更され、アイテム番号 6 からも変更されます。

4

1 に答える 1

3

これは、ListViewが内部で使用されているビュー(行アイテム)をリサイクルするためです。getView最善の解決策は、アダプターのメソッドをオーバーライドして、目的の行/アイテムの背景色を変更することです。これにより、リストアイテムをより細かく制御できるようになり、他の不要なビューの背景色をリセットできます。詳細については、こちらをお読みください

于 2012-04-30T08:45:27.323 に答える