Android 主屏幕小部件中的ListvView有时会显示旧的(缓存的?)数据
我在Android 4.x-ICS中有一个主屏幕小部件,它带有ListView,在做了一些更改后,所列的项目没有正确显示——我的意思是,旧的数据会显示出来。它总是这样: listview的可见部分始终良好=显示新数据 列表的不可见部分向上或向下滚动始终显示以下内容 物品陈旧,有些则没有 看起来,列表中不可见的部分被缓存了,当我向上或向下滚动时,只有少数项目被刷新,其他项目则没有。它看起来很有趣,因为当我上下滚动时,一些项目显示旧的,一些新的,总是不同的项目,就像绝对随机的。很简单很奇怪 有什么问题吗?这是我的列表视图:Android 主屏幕小部件中的ListvView有时会显示旧的(缓存的?)数据,android,listview,caching,widget,android-4.0-ice-cream-sandwich,Android,Listview,Caching,Widget,Android 4.0 Ice Cream Sandwich,我在Android 4.x-ICS中有一个主屏幕小部件,它带有ListView,在做了一些更改后,所列的项目没有正确显示——我的意思是,旧的数据会显示出来。它总是这样: listview的可见部分始终良好=显示新数据 列表的不可见部分向上或向下滚动始终显示以下内容 物品陈旧,有些则没有 看起来,列表中不可见的部分被缓存了,当我向上或向下滚动时,只有少数项目被刷新,其他项目则没有。它看起来很有趣,因为当我上下滚动时,一些项目显示旧的,一些新的,总是不同的项目,就像绝对随机的。很简单很奇怪 有什么问
<ListView
android:id="@+id/panelNews"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_marginLeft="@dimen/padding"
android:layout_marginRight="@dimen/padding"
android:layout_weight="1"
android:gravity="top"
android:paddingTop="@dimen/padding"
android:scrollingCache="false"
android:animationCache="false">
</ListView>
以下是我如何通知MyWidgetServiceFactory更新服务中的数据更改:
AppWidgetManager manager = AppWidgetManager.getInstance(this);
int[] appWidgetIds = manager.getAppWidgetIds(new ComponentName(this, MyWidget.class));
manager.notifyAppWidgetViewDataChanged(appWidgetIds, R.id.panelNews);
你应该使用函数
notifyDataSetChanged()
在用于填充列表的适配器上调用。检查这个
有关更多详细信息。好的,完全是我的错,这是一个愚蠢的错误-我只是忘记更新1个字段。我不知道数据更改-请参阅更新的问题最后几行。PS:主屏幕上的ListView没有适配器,但有RemoteViewsService和RemoteViewsServiceFactory。
notifyDataSetChanged()