listview行内容在android小部件中重复

时间:2013-05-22 19:16:57

标签: android listview collectionview

我有一个集合view widget,即listview来显示从DB获取的数据。我在getViewAt(int position)中实施了RemoteViewsServiceFactory方法。根据{{​​1}}返回的数字调用此方法。

但问题是getCount()中的行会重复,因为listview方法中传递的位置是假的。假设有6个项目,那么有时位置的值如果0,0,1,2,2,3,4,3,5有时0,0,2,1,4,4,5,2,2等等上。我永远不会得到正确的序列,即0,1,2,3,4,5。

但是,第一次添加窗口小部件时不会发生这种情况。只有当我调用getViewAt()()方法用新数据更新窗口小部件时才会发生这种情况。

请提供解决此问题的方法。提前致谢。如果您需要更多信息,请告诉我。急切地等待你的回复。

2 个答案:

答案 0 :(得分:0)

清除adapter,然后填充它。 问题将得到解决

修改 如何从列表中清除自定义adpater并重新初始化

CAdpater adapter = new CAdpater(this, mylist1);
list.setAdapter(adapter);

答案 1 :(得分:0)

好的,我有这个问题,只是发现它是什么。我怀疑面临这个问题的其他人也犯了同样的错误/疏忽。

当我打开“MainActivity”以显示数据库内容列表时,我只看到列表中的两个条目。然后,当我查看窗口小部件时,每次打开应用程序时,它都会使列表的大小加倍,即使从“MainActivity”看到的条目数没有变化。

由于我分叉了原始代码,我没有意识到每次打开“MainActivity”时都会在数据库中添加条目,然后在显示它自己的列表时过滤它们。

因此解决方案是在从小部件查询数据库时使用相同的过滤器。