NotifyDataSetChanged示例

NotifyDataSetChanged示例

我试着用在我的Android Application这个notifyDataSetChanged()方法的ArrayAdapter但这对我没用。

我发现作为回答,那notifyDataSetChanged()应该在主线程中运行,但是没有这样的例子。

有人能发送一个例子或至少一个链接吗?!


红糖糍粑
浏览 1222回答 4
4回答

万千封印

为了ArrayAdapter, notifyDataSetChanged只有在使用add(), insert(), remove(),和clear()在适配器上。当ArrayAdapter构造时,它为List被传了进来。如果你要通过List这是一个活动的成员,然后更改该活动成员,ArrayAdapter仍然保存对原始文件的引用。List..适配器不知道您更改了List在活动中。你们的选择是:使用ArrayAdapter若要修改基础列表,请执行以下操作(add(), insert(), remove(), clear()等等)重新创建ArrayAdapter新的List数据。(使用大量资源和垃圾收集。)创建您自己的类BaseAdapter和ListAdapter允许更改基础List数据结构使用notifyDataSetChanged()每次列表被更新。若要在UI-线程上调用它,请使用runOnUiThread()的Activity..然后,notifyDataSetChanged()会有用的。

一只斗牛犬

我最近写过这篇文章,虽然这篇文章很旧,但我认为这对想知道如何实现的人会有帮助。BaseAdapter.notifyDataSetChanged()一步,以正确的方式。请跟着如何在Android中正确实现BaseAdapter.NotifyDataSetChanged()或更新的博客BaseAdapter.tification fyDataSetChanged().

繁星点点滴滴

我也遇到了同样的问题,我不喜欢继续用一个新实例替换整个ArrayAdapter。因此,我让AdapterHelper在其他地方做繁重的工作。将此添加到通常(尝试)调用通知的地方new&nbsp;AdapterHelper().update((ArrayAdapter)adapter,&nbsp;new&nbsp;ArrayList<Object>(yourArrayList));adapter.notifyDataSetChanged();AdapterHelper类public&nbsp;class&nbsp;AdapterHelper&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;@SuppressWarnings({&nbsp;"rawtypes",&nbsp;"unchecked"&nbsp;}) &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;update(ArrayAdapter&nbsp;arrayAdapter,&nbsp;ArrayList<Object>&nbsp;listOfObject){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrayAdapter.clear(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(Object&nbsp;object&nbsp;:&nbsp;listOfObject){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arrayAdapter.add(object); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android