1

カスタムアダプタ付きのリストビューがあります。各行には、2つのテキストビューと1つのボタンがあります。アイテムをクリックしてハイライトし、別のアイテムをクリックするまでハイライトしたままにしておきたい。リストセレクターでやってみましたが、うまくいきませんでした。それから私はこのようにそれをやろうとしました:

public void onClick(View v) {
    ListView lvItems = context.lvLists;
    for (int i=0; i < lvItems.getChildCount(); i++) 
    {
        lvItems.getChildAt(i).setBackgroundColor(Color.BLACK);        
    }
    v.setBackgroundColor(Color.parseColor("#555555"));

これは、リストビューの各行のクリックです。動作しますが、下にスクロールすると、選択されたアイテムがさらにあることがわかりました(選択していません)。これに対する解決策は?

4

3 に答える 3

1

ListViewアイテムの一部のプロパティを保存する場合は、ビュー自体に依存することはできません。アダプタがどのアイテムの状態が変更されたかを認識できるように、それらをデータに保存する必要があります。詳細については、この質問への回答を参照してください。

Android:動的に新しいListViewエントリを追加すると、ListView内のスピナーの値が失われます

于 2012-10-25T13:05:24.180 に答える
0

You have plenty of answers here on Stack Overflow. Try checking this,this and also this.

于 2012-10-25T13:07:38.660 に答える
0

ビューホルダーパターンを実装する必要があります。次に、ホルダーコードに、そのアイテムの現在の状態(強調表示または非強調表示)を保持する(ブール)変数を設定し、それに応じて背景色を変更できます。

于 2012-10-25T13:05:02.673 に答える