问题标签 [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.
android - 从不同的片段更新加载器
我有两种类型的课程。类A
和类B
。类A
有一个List<B>
作为类变量。
现在我有一个ListFragment A
它使用ACursorAdapter
并实现LoaderCallBacks<Cursor>
并因此加载A
实例列表(由在光标中检索到的数据形成)。这本身就可以正常工作。
我也有一个ListFragment B
which uses BCursorAdapter
and also implementsLoaderCallBacks<Cursor>
因此加载一个B
实例列表。这本身也可以正常工作(由在游标中检索到的数据形成)。
现在,如果我从中删除选定的项目(通过ContentProvider
),ListFragment B
以使它们都形成一个特定的实例,那么我也会从数据库中A
删除相应的项目。A
但是,当我返回时 ListFragment A
,游标加载器仍然包含已删除的信息,并在显示刚刚删除的实例时抛出空指针异常。A
我ContentProvider
调用的所有方法getContext().getContentResolver().notifyChange(uri, null)
。但是 ListFragment A 仍然没有更新。
那么我如何通知刷新适配器/光标ListFragment A
from ListFragment B
,
任何帮助表示赞赏。
android - Android:ListFragment 中的 onDataSetChanged() 调用不起作用
我有一个 ListFragment,其中列出了所有可用的蓝牙设备。但是,当我在应用程序中的片段之间切换而不是切换回 ListFragment 时,适配器中的所有数据仍然存在,但 List 没有显示任何内容。这是代码:
当我第一次向 ArrayAdapter 添加项目并调用 notifyDataSetChanged 时,它工作得非常好。但是,当我离开 ListFragment 而不是回来时,它应该显示与以前相同的 List,但它没有显示任何内容。甚至当我像以前一样再次将数据添加到 ArrayAdapter 时也是如此。我从中将数据添加到 onCreateView 函数中的 ArrayAdapter 的 ArrayList 不为空。
谢谢你的建议!
android - 具有 JSONArray 的自定义基本适配器上的 notifydatasetchanged()
我制作了一个自定义的基本适配器类,在其中传递了活动的上下文和一个 JSONArray。我使用这个 JSONArray 数据来设置所有视图。但是适配器上的 notifyDataSetChanged() 不起作用。我是否必须在适配器中传递字符串数组或字符串数组列表才能使 notifyDataSetChanged() 工作?如果我通过 JSONArray,它会不起作用吗?
我的自定义适配器类代码:
android - 在 android gridview 中的图标集之间切换
我是android开发的新手。在我的 androidactivity
中,我有一个GridView
和一个Button
. 该类GridView adapter
在GridView
. 我想要的是,如果Button
单击活动中的 ,GridView
则应将 中的图标集替换为另一组图标。并且每次Button
点击activity中的两组图标都应该切换GridView
。那么,如何使用notifyDatasetChanged()
呢?请帮忙。
GridView Adapter
班级:
按钮 onclick 监听器:
android - 替换图像时动态刷新网格视图。notifyDataSetChanged() 不工作
我有一个GridView
从 SD 卡(如果存在)加载图像,否则是一些默认图像。加载图像后,用户可以选择任何图像单元并拍摄新照片。当加载默认图片GridView
并且用户拍照时,GridView
更新并显示图像 - 但如果用户再次单击单元格并拍摄新照片,则GridView
不会更新。只有当我杀死应用程序并重新启动它时,才会出现新图片。
我已经尝试过notifyDataSetChanged()
,但是刷新图像时它不起作用。
这是代码:
}
android - notifyDataSetChanged() 不刷新可扩展列表视图
我正在使用Expandable ListView
,其中的数据是通过Sqlite
数据库填充的。我提供了一个删除组的选项ExpandableListView
,它实际上删除row
了数据库中的相应组。但是活动不会被刷新,并且删除的“案例”是可见的,直到一个人返回并再次来到 this activity
。
我创建了class
一个extends *BaseExpandableListAdapter*
。它包含所有overridden
方法。以下是代码:
现在还有另一个class
RunningCase.java
which extends Activity
。这class
用于填充 中的数据ExpandableListView
。OnLongClick()
(点击并按住)中的任何组ExpandableListView
,context menu
出现 a。context menu
包含一个选项删除以从数据库中删除该案例并刷新RunningCase activity
.
方法db.getRunning()
,db.getRunning_child()
从数据库中检索数据。此外,以下是从数据库中删除案例的代码,该代码运行良好:
请帮帮我。应该在删除案例时刷新,activity
以便不再出现已删除的案例。提前致谢!!
android - 我的 GridView/ListView 仅在 android api 18+ 中触摸后才会呈现
更新:基于我的 BaseAdapter 的 gridview / listview 在 Android 4.3 中停止工作。如果我在 Android 4.2 或更低版本中运行它,它可以正常工作。
我用“愚蠢的”getView() 尝试了它,它每次都会膨胀一个新视图,它不会改变任何事情。
原始问题:
我有一个列表视图和一个网格视图。它们是我的数据的 2 种不同图形表示。我的问题是两者都有,所以从现在开始我只写adapterview,但它可能意味着两者。
我使用扩展 BaseAdapter 的自定义适配器设置了我的适配器视图。它主要工作,但有时当我更改设置(在 PreferenceActivity 意图中)并更改我的数据集时,调用 notifyDataSetChanged(),屏幕不会刷新。更准确地说,一些项目会被刷新,但其余项目会保留在屏幕上,就像更改前一样。
我阅读了许多教程,观看了 Romain Guy 的视频,似乎我错过了一些非常基本的东西,但无法弄清楚它是什么。
我加了一些调试,奇怪的是,我调用notifyDataSetChanged()后,调用getCount(),可以看到数字变了,甚至调用getView(),就是不刷新item屏幕上。然而,在我触摸屏幕后,一切都被渲染了(尽管 getView() 再次为所有可见视图调用)
这是我的 getView() 函数的开始:
我将 convertView1 转换为 CategoryListItemView 的原因是因为我稍后在 getView() 中使用了它的自定义函数。
我的适配器视图是 GridView 或 ListView,相应的项目是 category_grid_item 或 category_list_item,每当我在 2 个可视化之间进行更改时,我都会使适配器无效(无论如何我的问题不存在)
java - 如何使用 .notifyDataSetChanged() 更新 Listfragment 中的 SimpleCursorAdapter?
我想在 ListView(ListFragment) 中插入一个新的视图数据行,我已经在方法中的 setAdapter() 中声明了数组,但是它有 NullPointerException 错误我应该如何adapter.notifyDataSetChanged();
在新方法中使用?
我再次尝试在新方法中声明游标,或在类中声明 SimpleCursorAdapter,但它们有一些错误
日志猫:
注意片段:
}
主要活动:
新的错误信息:
android - notifyDataSetChanged() 最后更新
我有一个Runnable
类可以为我的复合列表视图计算模型值,在该可运行文件中,自定义线程中有一个 UI 线程。我有适配器的notifyDataSetChanged()
调用,但是在notifyDataSetChanged()
我尝试更新主布局中的一些 TextView 值之后。问题是在运行 TextView 时首先更新,然后才是 ListViews 并更新。这意味着notifyDataSetChanged()
自Adapter
定义类最后更新,这不适合我。是否有可能同步这些屏幕更新?
这是示例代码:
android - 多个连续的适配器 notifyDataSetChanged 调用不刷新 ListView
这是一个非常严重的错误行为,我不知道为什么这不起作用。
我的适配器(扩展BaseAdapter
)结合了两种独立的数据类型。一个是游标,另一个是元素列表。两者的设置器都获取数据和强制notifyDataSetChanged()
:
这些元素的数据是使用两个独立AsyncTaskLoader
的 Loader 框架收集的。更具体地说,这些设置器是从相应的LoaderCallbacks.onLoadFinished
方法中调用的。
当用户选择显示不同的数据时,两个 Loader 都会在 my 中触发Fragment
:
为了可视化 的重绘ListView
,我在适配器的getView
方法中登录。
在我运行 Android 4.3 的主要开发设备上,一切正常。
1) 用户触发器更改 2) 两个加载器触发 3) 两个加载器独立完成,每次触发notifyDataSetChanged
,我看到很多getView
日志输出,但重要的是:在第二个加载器完成后,列表再次重绘。
示意图:
- 触发装载机 1
- 触发装载机 2
- 装载机 1 完成
- notifyDataSetChanged 从加载器 1
- getView pos 1(反映加载程序 1 数据的更改)
- getView pos 2(反映加载程序 1 数据的更改)
- getView pos 3(反映加载程序 1 数据的更改)
- 装载机2完成
- getView pos 4(反映加载程序 1 数据的更改)
- notifyDataSetChanged from loader 2
- getView pos 5(反映加载程序 1 数据的更改)
- getView pos 1(反映加载程序 2 数据的更改)
- getView pos 2(反映加载程序 2 数据的更改)
- getView pos 3(反映加载程序 2 数据的更改)
- getView pos 4(反映加载程序 2 数据的更改)
- getView pos 5(反映加载程序 2 数据的更改)
该列表显示新信息就好了。
但现在,我无法相信这一点。在 Android 4.2 上会发生以下情况:
- 触发装载机 1
- 触发装载机 2
- 装载机 1 完成
- notifyDataSetChanged 从加载器 1
- getView pos 1(反映加载程序 1 数据的更改)
- getView pos 2(反映加载程序 1 数据的更改)
- getView pos 3(反映加载程序 1 数据的更改)
- 装载机2完成
- getView pos 4(反映加载程序 1 数据的更改)
- notifyDataSetChanged 来自加载程序 2
getView pos 5(反映加载程序 1 数据的更改)
结束 - 不再有应该反映第二个加载程序的 notifyDataSetChanged 的 getViews!
我希望这对你来说更清楚。
我对始终在 UI 线程上调用的 notifyDataSetChanged 的假设是:每次我调用它时,它必须强制重绘所有元素。但这不会发生。