android的adapter能不能在onResume方法中创建

点击listView的item进入修改数据后,返回到listview,数据不更新,但是把adapter的创建放到onResume方法中之后,按返回键回到listview界... 点击listView的item进入修改数据后,返回到listview,数据不更新,但是把adapter的创建放到onResume方法中之后,按返回键回到listview界面数据就更新了,为什么啊?adapter能不能在onResume方法中创建?
在onResume方法中调用notifyDataSetChanged没有用
展开
 我来答
QQMSD8
推荐于2016-08-29 · 知道合伙人软件行家
QQMSD8
知道合伙人软件行家
采纳数:6788 获赞数:13239
没有做不到,只有想不到,帮助别人的同时也是对自己的提升

向TA提问 私信TA
展开全部

Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。

1.如下图直观的表达了Data、Adapter、View三者的关系:



Android中所有的Adapter一览:


由图可以看到在Android中与Adapter有关的所有接口、类的完整层级图。在我们使用过程中可以根据自己的需求实现接口或者继承类进行一定的扩展。比较常用的有 Base Adapter,Impleader,Adapter,Counteradaptation等。

BaseAdapter是一个抽象类,继承它需要实现较多的方法,所以也就具有较高的灵活性;

ArrayAdapter支持泛型操作,最为简单,只能展示一行字。

SimpleAdapter有最好的扩充性,可以自定义出各种效果。

SimpleCursorAdapter可以适用于简单的纯文字型ListView,它需要Cursor的字段和UI的id对应起来。如需要实现更复杂的UI也可以重写其他方法。可以认为是SimpleAdapter对数据库的简单结合,可以方便地把数据库的内容以列表的形式展示出来。


2.Adapter的方法

        1.下面将对Adapter代码,做详细的解释,listView在开始绘制的时候,系统首先调用getCount()函数,根据他的返回值得到listView的长度,然后根据这个长度,调用getView()逐一绘制每一行。如果你的getCount()返回值是0的话,列表将不显示同样return 1,就只显示一行。

  2.系统显示列表时,首先实例化一个适配器(这里将实例化自定义的适配器)。当手动完成适配时,必须手动映射数据,这需要重写getView()方法。系统在绘制列表的每一行的时候将调用此方法。getView()有三个参数,position表示将显示的是第几行,covertView是从布局文件中inflate来的布局。


当了解了Adapter是怎么工作以后,你会发现Adapter的创建其实与Activity的生命周期无关

也就是说,你在onResume 创建和刷新都是没有问题的,当你调用adapter.notifyDataSetChanged() 方法后,android系统会刷新一下列表,实际上就是重新调用了一次adapter的 getView() ,即重新绘制每一行数据


有关adapter的机制,及更多用法,建议查看官方API文档

JulioHu706
2014-05-23 · TA获得超过653个赞
知道小有建树答主
回答量:789
采纳率:0%
帮助的人:433万
展开全部
在修改完成的地方马上调用notifyDataSetChanged
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5d16e95
2014-05-23 · TA获得超过181个赞
知道小有建树答主
回答量:66
采纳率:0%
帮助的人:77.3万
展开全部
在onResume()方法调用myAdapter.notifyDataSetChanged();试试
更多追问追答
追问
试过了,不行
追答
能把你的代码片段贴出来看看么,更新数据那部分
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式