java - 如何更新游标适配器中的 View ?

标签 java android

我扩展了光标适配器

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/

相关文章:

java - 如何在 JScrollPane 的左上角添加组件?

java - Swing worker : function get()

android - 从 asynctask android 获取字符串

android - 应用内结算和 Google 电子钱包 OrderId

java - Java 中的 Mock/Stub super 构造函数调用用于单元测试

java - 如何计算方法描述符的参数数量?

java - viewParam返回空值

java - 获取java xml中节点的节点的节点?

android - 如何在没有我的应用程序的情况下阻止 Eddystone 将内容推送到手机

android - 在 Android Manifest 中更改主题会导致应用程序崩溃 - 简单的解决方案?