Android自定义列表视图适配器保持突出显示所选项目

时间:2016-01-20 11:39:45

标签: android listview

我的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秒。突出显示某个项目会略有延迟。

0 个答案:

没有答案