问题标签 [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 投票
4 回答
4194 浏览

android - Android ListView adapter.notifyDataSetChanged 有时有效,有时无效

Android ListView 的适配器有一个令人沮丧的问题

我有这段代码:

Wheredice是自定义对象的 ArrayList 并且adapterArrayAdapter. 单击视图时, Toast始终可见,但 ListView 仅偶尔更新。我看不出它有什么规律。有时视图会在点击时更新,有时会在 2 或 3 次之后更新。

有任何想法吗?谢谢

0 投票
1 回答
147 浏览

android - CastException:从 ViewPager 更新片段后

我正在使用以下方法更新我的片段 2:

现在,当我在 中添加和附加和不同时FragmentgetItem(int position)一切似乎都运行良好。但是,当我运行mPager.getAdapter().notifyDataSetChanged();它时,它会抛出我:

怎么了?非常感谢。

0 投票
1 回答
1048 浏览

android - 实时更新列表视图

我已经深入研究了 SO,但是,尽管我发现其他人向我提出了类似的问题,但我还没有找到一个可以解决我遇到的相同问题的问题。我也没有找到满意的答案。

我有一个列表视图。当我从适配器调用 .notifyDataSetChanged 时,ListView 会更新,但只有在调用 onResume() 后才能看到更新。换句话说,我不会立即看到它,只有在我离开活动并回来之后。

我该怎么做才能立即看到更新?我已经尝试过 .notifyDataSetChanged 方法,我尝试过重置适配器......没有任何效果。

0 投票
2 回答
322 浏览

android - 适配器 notifyDataSetChanged 也不工作

我用于notifyDataSetChanged适配器,但我的列表没有更新。这是我的代码的一部分。

所以每次我向 中添加项目时userNames,我都会调用adapter.notifyDataSetChanged();方法,但没有任何更新。我尝试了很多清理,清理userNames的方法,但它不起作用。谁能帮我?谢谢

编辑:

我在添加新用户的地方调用这两个函数。

我也有User课,但我填写ListView了用户的用户名。

0 投票
1 回答
7078 浏览

android - Android Viewpager如何动态删除一个Fragment?

几天来,我一直在努力在我的应用程序中构建允许用户从 Viewpager 中删除页面/片段的功能,我尝试将我的 FragmentPageAdapter 更改为 FragmentStatePageAdapter 并覆盖我 getItemPosition()的 to return POSITION_NONE;但是这仍然不允许我删除我打电话时动态分段fragments.remove(page);

以前有没有人成功地做到过?看起来应该很简单,但事实并非如此,下面是我的片段适配器,任何帮助都会大有帮助,谢谢!

0 投票
1 回答
9930 浏览

android - notifyDataSetChanged() 不适用于我的 gridview 适配器

我有一个GridView和适配器GridView(BasketAdapter extends BaseAdapter)。

GridView从 sharedpref 文件中加载数据。更改数据后,我使用数据重新保存 sharedpref 文件并调用notifyDataSetChanged(). 但notifyDataSetChanged()不幸的是不起作用。

如果我创建新适配器并将其设置为 my GridView,它可以工作。谁能帮我解决这个问题?

这是我的代码:

0 投票
1 回答
1342 浏览

android - Android:将新项目添加到列表后,ListView 中的 NullPointerException onItemClick

这是一些代码,我无法修复自己。

我制作了一个自定义 ArrayAdapter,用包含玩家姓名的 TextView 填充我的 ListView。

当在实例化适配器之前指定完整的播放器名称列表时,它会按预期工作。当我单击适配器实例化后添加的列表项时会出现问题。


我不知道为什么会在以下位置出现 NullPointerException:

在这条线上:

当我单击列表中名为“Fries”的第三个玩家时。


带解释的代码:

PlayersArrayAdapter 类:


来自调试的错误消息:

0 投票
3 回答
19863 浏览

android - 如何在不使用 notifyDataSetChanged() 的情况下更新 Listview 中的某些数据?

我正在尝试ListView使用下载任务列表创建一个。

下载任务在Service(DownloadService) 中进行管理。每次接收到一大块数据时,任务通过 a 发送进度Broadcast,由Fragment包含ListView(SavedShowListFragment) 接收。收到Broadcast消息后,SavedShowListFragment 会更新适配器中下载任务的进度并触发notifyDataSetChanged().

列表中的每一行都包含一个ProgressBar,aTextView代表正在下载的文件的标题,一个代表进度的数值,aButton用于在下载完成时暂停/恢复下载或播放保存的节目。

问题是暂停/恢复/播放Button通常没有响应(onClick()没有被调用),我认为这是因为整个列表的更新非常频繁notifyDataSetChanged()(每次接收到一大块数据,即 1024 字节,这可以是每秒多次,尤其是当有多个下载任务正在运行时)。

我想我可以在下载任务中增加数据块的大小,但我真的认为我的方法根本不是最优的!

频繁调用会notifyDataSetChanged()导致ListViewUI 无响应吗?

有没有办法只更新行Views中的一些ListView,即在我的情况下ProgressBarTextView与进度的数值,而不调用notifyDataSetChanged(),更新整个列表?

更新下载任务的进度ListView,有没有比“getChunk/sendBroadcast/updateData/notifyDataSetChanged”更好的选择?

以下是我的代码的相关部分。

下载服务中的下载任务

SavedShowListFragment

SavedShowAdapter

0 投票
4 回答
3766 浏览

android - 为 PinterestLikeAdapterView 调用 notifyDataSetChanged() 时如何避免刷新单元格?

背景

我正在使用PinterestLikeAdapterView 库来显示来自互联网的一些图像,这就像一个 gridView 但每个单元格的高度不同。

问题

因为我使用这个库来显示来自互联网的图像,所以在调用 notifyDatasetChanged 时不会导致视图混乱是至关重要的。

出于某种原因,调用此函数将调用 getView() 方法,并为视图提供不同的位置。例如,即使我根本没有滚动,并调用 notifyDatasetChanged(或 addAll,如果它是一个 ArrayAdapter),对于位置 0,它将采用位置 8 的视图,对于位置 1,它将采用位置视图7,以此类推……

这使得整个网格刷新它的图像,因此它破坏了用户体验。

通常,在gridView和listView中,克服刷新的方法是将视图使用的位置放在viewHolder中,如果相等,则表示它们仍然匹配。

例如:

但是,在这里他们以不同的顺序重用其他视图,所以这个技巧在这里不起作用。

由于这个问题,我不仅刷新了几乎所有可见视图,而且由于我使用DiskCacheLru 库,它会崩溃,因为它尝试使用 2 个线程将 2 个相同的 inputSteam 数据放入同一个键中。

问题

我能做些什么?这是库中的已知错误吗?

也许我正在使用一种不好的方法来克服刷新?

现在,我使用内存缓存来至少获取以前缓存的项目,但这更像是“治愈”而不是“疫苗”......

0 投票
1 回答
1485 浏览

android - Android CardUI 库:在 Fragment 的 onResume 事件上刷​​新卡片内容

我在我的一个项目中使用CardUILib,我必须承认它很棒,但一直被困在一个问题上。我想在 Fragment 的 onResume 事件上更新所有堆叠的卡片内容。当 onResume 被调用时,我找不到刷新这些内容的方法。

我在想是否有像 notifyDataSetChanged 这样的方法,但无法为 CardsUiLib 找到这样的方法。请帮忙。

Gihib 链接: https ://github.com/Androguide/cardsui-for-android 库的另一个参考:http ://www.androidviews.net/2012/12/cardsui/