5

私は1つのリストビューを持っています。アダプターの getView() メソッドで、以下のような行の色を交互に割り当てました。

if(position % 2 ==1)
{
convertView.setBackgroundColor(Color.rgb(231, 249, 255));
}
else
{
convertView.setBackgroundColor(Color.rgb(195, 240, 255)); 
}

上記のコードは正常に動作しています。選択したリスト項目の色を変更したいと思います。そのために、以下の手順に従いました。

以下のように listSelector xml で作成しました。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

  <!-- Selected --> 
  <item 
    android:state_focused="true" 
    android:state_selected="false" 
    android:drawable="@drawable/focused"/> 

  <!-- Pressed -->
  <item 
    android:state_selected="true" 
    android:state_focused="false"
    android:drawable="@drawable/selected" /> 

</selector>

上記のセレクターを以下のようにリストに割り当てました。

myList.setSelector(R.drawable.list_selector);

しかし、選択したリスト項目の色が表示されません。

アンドロイドリストに交互の行の色と選択したリストアイテムの色を設定する方法を教えてください。

4

1 に答える 1

3

このようにしてみてください

artist_list_backgroundcolor.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
 <item 
 android:state_selected="false"
    android:state_pressed="false" 
    android:drawable="@color/normal" />
<item android:state_pressed="true" 
    android:drawable="@color/itemselected" />
<item android:state_selected="true"
 android:state_pressed="false" 
    android:drawable="@color/itemselected" />
</selector> 

色.xml

<resources>

    <color name="normal">#ffffff</color>
    <color name="itemselected">#EDEDED</color>

</resources>

そしてそれを getView() で使用します

if (position % 2 == 0) {
        view.setBackgroundResource(R.drawable.artists_list_backgroundcolor);
    } else {
        view.setBackgroundResource(R.drawable.HERE_FOR_ALTERNATE);
    }

参考リンク

これがあなたを助けることを願っています。

于 2013-10-27T08:36:07.823 に答える