我扩展了光标适配器
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”是在适配器中绑定(bind) View 时找到的标题。我让 TextView 在被选择时改变颜色。当它被选择时,它会改变颜色,但是当我单击 ListView 中的另一个项目时,它也会改变颜色,但所选的旧项目保持相同的颜色。
谁能告诉我是否有办法更新 View ,或者我如何能够应用一个 View 持有者?谢谢!
最佳答案
尝试使用“if”的 else{} 部分并将其设置为默认颜色。类似的东西
if (OtherClass.currentlyPlaying.equals(ring)) {
TextView.setTextColor(Color.red);
}else{
TextView.setTextColor(Your default color);
}
据我所知,旧项目没有被重绘。 ViewHolder 也可以为您提供大部分帮助,但为此您需要实现它。您可以尝试此线程中的以下教程。
https://stackoverflow.com/a/9696185/1244489
您可能会发现它很有用。
关于java - 如何更新游标适配器中的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9711637/