我的listview
有问题。我想要做的是当我点击listview
中的项目时,它应该保持突出显示,当我点击另一个项目时,应该突出显示新项目。
这是我到目前为止所做的:
public void setSelection(int position) {
if (selectedPos == position) {
selectedPos = NOT_SELECTED;
} else {
selectedPos = position;
}
notifyDataSetChanged();
}
适配器GetView:
if (position == selectedPos) {
// your color for selected item
viewHolder.tvTitle.setTextColor(context.getResources().getColor(R.color.main_blue));
viewHolder.tvDetails.setTextColor(context.getResources().getColor(R.color.main_blue));
}
else {
// your color for non-selected item
viewHolder.tvTitle.setTextColor(context.getResources().getColor(R.color.dark_grey));
viewHolder.tvDetails.setTextColor(context.getResources().getColor(R.color.dark_grey));
}
活动:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
episodesAdapter.setSelected(position);
}
});
这是按预期工作的,但问题出在notifyDataSetChanged
,它会延迟突出显示下一个正在选择的项目的时间。我该怎么办才能自动突出显示它?任何帮助都会得到真正的赞赏。谢谢!
更新: 我测试了,在突出显示新项目之前花了8-10秒。突出显示某个项目会略有延迟。