Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在ListView中显示项目标记_Android_Sqlite_Android Listview_Android Cursor - Fatal编程技术网

Android 在ListView中显示项目标记

Android 在ListView中显示项目标记,android,sqlite,android-listview,android-cursor,Android,Sqlite,Android Listview,Android Cursor,我被一个刚开始似乎很容易的问题困住了。我想在ListView中显示支持多个标记的项目。我已经设置了一个CursorAdapter来为我的ListView提供必要的数据,但我不太确定最好的方法是什么 通过使用连接,我从数据库中提取了项目和标记 item1 | tagA item1 | tagB item2 | tagC item3 | tagB 我试过很多垃圾,但直到现在都是这样。。。垃圾 尽管前两个项共享完全相同的\u id字段,但这些项被分配到不同的列表视图,我想这与适配器为光标中的每个条目

我被一个刚开始似乎很容易的问题困住了。我想在ListView中显示支持多个标记的项目。我已经设置了一个CursorAdapter来为我的ListView提供必要的数据,但我不太确定最好的方法是什么

通过使用连接,我从数据库中提取了项目和标记

item1 | tagA
item1 | tagB
item2 | tagC
item3 | tagB
我试过很多垃圾,但直到现在都是这样。。。垃圾

尽管前两个项共享完全相同的
\u id
字段,但这些项被分配到不同的列表视图,我想这与适配器为光标中的每个条目生成一个新的列表项有关。在某个地方,我希望它会尝试使用相同的
\u id
更新列表条目,这将给我留下一个简单的解决方案,即在调用
setViewValue()
时,只需在ViewBinder中编写代码即可附加到标记视图中

  • 我考虑过在ViewBinder中手动执行Cursor.moveToNext(),以便在后续游标的id匹配的情况下向我的ListView添加必要的标记TextView。这并不能完全解决我的问题,因为实际ListView的光标不会受到ViewBinder中的
    moveToNext()
    调用的影响(由于带有参数的值传递)。列表中的第一项确实显示了所有标记
    item1 | tagA,tagB
    ,但是下一个光标仍然显示
    item1 | tagB
    中已经显示的
    item1
    ,因为适配器的光标不能被ViewBinder调用更改
  • 我考虑过写入/扩展对象,并让适配器连接点(.例如:我传递适配器
    List
    (而不是光标)和arm
    Item
    ,方法是
    public List getTags()
    ,以轻松提取每个项的标记。 列表{ 项{id=1,标记{tagA,tagB}, 项{id=2,标记{tagC}, 项目{id=3,标记{tagB} } 我会遍历游标集来填充列表。然而,要做到这一点,我真的需要了解游标的内务管理以保持整洁
  • 基本上,我不想想出一个肮脏的解决方案。我打赌你们中的一些人在过去的某个地方已经解决了这个问题。解决这个问题的最佳方法是什么