1

我正在制作具有不同背景和文本颜色的自定义列表视图。我已经从我的自定义适配器中覆盖了 setSelected(int position) 方法。它在 7 英寸标签中工作正常,但在三星 Galaxy Note 平板电脑(10.1 英寸)中无法正常工作。

if(selectedPosition == position){
          ((TextView)convertView.findViewById(R.id.folderName)).setTextColor(Color.WHITE);
          ((LinearLayout)convertView.findViewById(R.id.folderLayout)).setBackgroundResource(R.drawable.folders_list_bg_s);
      }else{
          ((TextView)convertView.findViewById(R.id.folderName)).setTextColor(Color.BLACK); 
          ((LinearLayout)convertView.findViewById(R.id.folderLayout)).setBackgroundResource(R.drawable.folders_list_bg);
      }

而setselection方法为

public void setSelected(int position) {
    selectedPosition = position;
}
4

1 回答 1

1

修改适配器后,我们需要使用 notifyDatasetChanged() 进行通知,例如

if(selectedPosition == position){
      ((TextView)convertView.findViewById(R.id.folderName)).setTextColor(Color.WHITE);
      ((LinearLayout)convertView.findViewById(R.id.folderLayout)).setBackgroundResource(R.drawable.folders_list_bg_s);
      notifyDatasetChanged();
  }else{
      ((TextView)convertView.findViewById(R.id.folderName)).setTextColor(Color.BLACK); 
      ((LinearLayout)convertView.findViewById(R.id.folderLayout)).setBackgroundResource(R.drawable.folders_list_bg);
  }
于 2013-07-15T07:46:44.560 回答