0

我有一个listview. 我使用包含 atextViewimageview. Textview因为那是从 a 填充的arraylist。我使用了一个array-adapter,因为它直接给了我,而我getFilter()又用它来过滤列表。

我正在运行一个数据库查询,它返回一个项目列表。我将所有项目存储在一个Cursor. 现在我正在遍历游标并检查数据库中的项目是否包含在数组列表中。

如果有匹配项,我想切换图像。我该怎么做。

Cursor crs = actSl.execSQL(sqlQuery);
 if (crs != null && crs.getCount() > 0) {
  crs.moveToFirst();
  if (crs.getCount() > 0) {
     do {
         for(String favItem:favouritesList){
               if (favItem.contains(crs.getString(0))) {                        

                            }
                        }
                    } while (crs.moveToNext());
                }
            } 
4

2 回答 2

0

如果您不想更改数据结构,一种方法是创建一个新的布尔数组(或数组列表),该数组的大小与您的 favouritesList 大小相同,它将保存您的图像状态。然后修改这些值并调用 yourListAdapter.notifyItemsChanged()

哦,是的,在适配器的 getView 中,您必须(当然)读取布尔值。

请注意,您不能访问适配器外部列表的单独视图,并且强烈建议不要保留对它们的引用。

于 2013-01-24T08:52:24.007 回答
0

请按照以下步骤操作:

  1. 最初从 arrayList 设置 imageViews(将 arrayList 传递给 customAdapter)

  2. 当必须更改 imageView 时,只需更改 arrayList() 即更新它。

  3. 现在通知适配器使用

    customListAdapter.notifyItemsChanged();

这将解决问题。请随时提出任何进一步的疑问

于 2013-01-24T09:05:04.927 回答