问题标签 [notifydatasetchanged]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
121 浏览

android - 与 setAdapter() 方法相比,notifyDataSetChanged() 向我展示了不同的视图

每个人!当我使用ListView. 当我打电话给setAdapter()andnotifyDataSetChanged()时,我得到了不同的看法。其实区别只是maginitem的参数。那么,这两种方法有什么不同吗?

PS请不要告诉我这与notifyDataSetChanged vs setAdapter重复。我期待了解导致不同观点的异常,而该问题集中在两种方法的不同成本上。

0 投票
3 回答
269 浏览

android - ListView 在用户交互之前不会刷新

我有一个 ListView 和一个自定义适配器。当用户从微调器更改排序类型时,我想用新项目重绘列表。问题是 ListView 只有在我在设备上与它交互后才会重新绘制(例如开始滚动)。

我还尝试将我的适配器的新实例完全重置到列表中,它给出了相同的结果,只是列表首先变为空白并出现在用户交互中。

我正在使用 HoloEveryWhere,也许这是一个重要信息。

编辑:这是更多代码

编辑:自定义适配器的 getView 方法

0 投票
2 回答
412 浏览

android - 调用 notifyDataSetChanged 时,ArrayAdapter 弄乱了 ListView 的内容

我正在开发一个带有 ListView/ArrayAdapter 组合的 android 应用程序,当它接收到来自另一个服务的广播时,这些项目会被动态添加。

这是初始设置:

最初列表中有一些元素(存储在帖子中)。

来自适配器的 listView 的初始渲染效果很好。

但是,当从另一个服务接收到广播时,就会出现问题。

起初,当添加前 2 个元素时,listView 看起来仍然很好。

直到 listView 添加到大约 7 个元素,然后下一个元素不再呈现为有问题的元素的内容,而是呈现为前一个元素的内容。

例如(为简单起见伪):

以下是初始列表: 1 2 3

当添加第 4 和第 5 个帖子时,listView 看起来像: 1 2 3 4 5 正如预期的那样,

但是,当添加第 6 项,有时添加第 7 项时,它将看起来像这样 1 2 3 4 5 1 2 ...

下面是我的自定义 PostAdapter 函数:

公共类 PostAdapter 扩展 ArrayAdapter { int 资源;

}

我在这上面花了 10 多个小时,我不知道是什么导致了这个问题。

如果专家能指出我真的很感激。

谢谢你,丹尼斯

0 投票
2 回答
3945 浏览

android - Android 如何调用 notifyDataSetChanged 来刷新 AsyncTask onPostExecute 中的列表

我有一个使用自定义光标适配器 SavedTripsAdapter 填充数据库的列表视图。

这是我初始化适配器的方法: allTrips = mDb.fetchAllTrips();

当我单击一个列表项时,我可以通过调用以下函数再次上传它,该函数在 AsyncTask 中完成。

在 FragmentSavedTripsSection 中:

在 TripUploader 中:

但是,TripUploader 是一个单独的类。当行程上传成功时,数据库会更新,所以我想使用 savedTripsAdapter.notifyDataSetChanged() 刷新列表

应该在哪里以及如何放置 savedTripsAdapter.notifyDataSetChanged()?

如果我把它放在列表视图类中,它不会被称为 onPostExecute。但是如果我把它放在 TripUploader 的 onPostExecute 函数中,我怎样才能访问我在列表视图类中实例化的同一个 savedTripsAdapter 实例?

谢谢你的帮助!

0 投票
1 回答
287 浏览

android - 调用 notifydatasetchanged() 时 FragmentStatePageAdapter 不会刷新

我有一个 ViewPager 和 Spinner 的活动,我想做的就是通过选择 Spinner 中的项目来更改所有页面内容,以便更充分地理解我将解释 - 我正在开发一个简单的电视时间表每周节目,所以pages 是每日电视节目,而 spinner 是电视频道,当我们启动节目时,它将显示所有频道的简短 4 项节目列表,当我们选择“CNN”或微调器中的任何其他内容时,它将显示页面显示的一天的完整电视节目列表(用于显示我使用 TitlePageIndicator 的天),所以我的问题是当我在微调器中选择了一个项目,加载了数据并
调用了 notifydatasetchanged()对于我的 FragmentStatePagerAdapter - 它不会刷新页面。我没有明白我做错了什么?

我的适配器

MyActivity onCreate 中的一些代码

这就是我在应用启动后获取数据的方式

这是我的问题 - 是一个 setParamsToPages 方法

0 投票
2 回答
348 浏览

android - ListView error - java.lang.IllegalStateException

I get this error with my ListView:

java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. Make sure your adapter calls notifyDataSetChanged() when its content changes.

In my app I have a ListView with a CustomAdapter.

In the OnCreate Method I have:

Also I have an AsyncHttpResponseHandler that gets data from my webservice to fill my ListView. Everthing works fine with that. In the method onFinish() of the AsyncHttpResponseHandler I am updating the data of my List View.

When I get to the method onFinish() I have already the list with the data.

Here is my Custom Adapter:

What solution could be for this? I think I get the error when I use the list (Scroll, click) and the data is beeing updated. Please some little help.

0 投票
1 回答
224 浏览

java - How to correctly notify this adapter its dataset has changed?

I am asynchronously downloading images that will be part of a GridView. And to update the GridView within the onCreate(), I call notifyDataSetChanged(); on a runOnUiThread();

Now, my question is:

Is there a better way to do this? I am setting the Thread to sleep for 2 seconds to ensure the images will be there the time the data in the adapter gets changed. But, of course, I am hardcoding this condition (It may take more than 2 seconds), and the internet connection might fail preventing the GridView update correctly.

Here is the Thread,

Thank you very much!

0 投票
3 回答
3606 浏览

android - 数据从自定义适配器更改后刷新列表视图

我已经看过几篇关于此的帖子,但我似乎无法很好地遵循一篇文章来解决我的问题。

我在更新或删除记录后尝试刷新我的 ListView。我目前正在使用 notifyDataSetChanged() 但是它在删除时不会刷新。我可以删除,然后如果我返回并重新加载我的history.java,它将显示更新,因为我正在重新加载所有数据。

这是我的HistoryAdapter.java

这是我的history.java设置适配器并创建列表视图

0 投票
1 回答
2171 浏览

android - 如何从事件监听器刷新 Android UI?

我有一个数据包侦听器,可以检测数据包何时到达,并且ArrayAdapter在发生这种情况时需要刷新。问题是,如果我尝试访问该adapter.notifyDataSetChanged()方法,则会引发异常:

有任何想法吗?

0 投票
0 回答
798 浏览

android - 适配器 notifyDataSetChanged 何时完成屏幕更新

我从我的 DownloadTask 的 onPostExecute 调用 myAdapter.notifyDataSetChanged()。然而,适配器在项目上的循环在旧手机上非常慢(因为它必须解压缩下载的文件),并且屏幕保持白色,直到所有项目的视图都准备好。我宁愿继续显示我的进度对话框,直到屏幕“准备好”显示所有项目的视图。当适配器完成屏幕更新时,我可以使用监听器来通知我吗?