Android自定义列表视图 - 更改所选项目的背景和文本颜色不起作用?

时间:2013-07-04 06:55:38

标签: android listview custom-lists

我正在制作具有不同背景和文字颜色的自定义列表视图。我从自定义适配器覆盖了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;
}

1 个答案:

答案 0 :(得分: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);
  }