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