0

リスト項目用のカスタム アダプターを実装しました。2つの要件があります

1) リスト項目には別の色が必要です。それを実装するために、私は以下のコードを持っています

private final int[] bgColors = new int[] {R.color.list_bg_1, R.color.list_bg_2};            
int colorPosition = position % bgColors.length;
convertView.setBackgroundResource(bgColors[colorPosition]);

2)リスト項目をクリックすると、強調表示されます

Drawable selectedBackground;
  selectedBackground = context.getResources().getDrawable(R.color.backgroundColor);
    if (selectedPos == position) {
                convertView.setBackgroundDrawable(selectedBackground);
            } else {
                convertView.setBackgroundDrawable(null);
            }

// this method is called in onItemClick in Activity.
 public void setSelectedPosition(int pos){
            selectedPos = pos;
            notifyDataSetChanged();
        }

問題: 両方のコードを配置すると、どちらかの機能が動作しません。両方の機能が上記のコードで動作することを確認するにはどうすればよいですか?

4

1 に答える 1

0

背景用の selector.xml ファイルを作成してから、ビューの背景をそのセレクター名に設定する必要があります。セレクターを使用すると、ビューの各状態の背景を選択できます。ビューが選択されているかどうか、押されているかどうかなど。

つまり、my_views_background_selector という xml ファイルがあります。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
    android:drawable="@drawable/selectedBackground" />
<item android:state_pressed="true"
    android:drawable="@drawable/pressedBackground" />
<item android:drawable="@drawable/regularBackground"/>


</selector>

そして、次のようにしてプログラムで背景を設定できます

convertView.setBackgroundResource(R.drawable.my_views_background_selector)

または、convertedView を膨らませるために使用した xml ファイルで

于 2013-04-25T02:28:50.617 に答える