我已经扩展了游标适配器
public class MyAdapter extends CursorAdapter {
MyAdapter(View view, Context context, Cursor cursor) {
...
}
public void bindView(View view, Context con, Cursor c) {
if (OtherClass.currentlyPlaying.equals(ring)) {
TextView.setTextColor(Color.red);
}
}
}
'currentlyPlaying'是另一个类中的字符串,与当前正在播放的标题相对应。 'ring'是绑定适配器中视图时找到的标题。我选择了textview更改颜色。当它被选中时它会改变颜色,但是当我点击列表视图中的另一个项目时它也会改变颜色,但是所选择的旧项目仍然是相同的颜色。
有人能告诉我是否有办法更新视图或者我可以如何应用这个视图?谢谢!
答案 0 :(得分:2)
尝试使用“if”的else {}部分并将其设置为默认颜色。像
这样的东西if (OtherClass.currentlyPlaying.equals(ring)) {
TextView.setTextColor(Color.red);
}else{
TextView.setTextColor(Your default color);
}
从我得到的是旧项目没有重新绘制。 ViewHolder也可以帮助你,但是你需要实现它。您可以在此主题中尝试以下教程。
https://stackoverflow.com/a/9696185/1244489
您可能会发现它很有用。