android列表数据刷新问题。。。

列表上数据来自数据库, 为避免假死数据请求和adapter 的赋值全在一个单独的线程中,现在我要对列表操作,改变数据库里的值,但是改变之后不能及时刷新,总得先关闭这个activity在进入才能看到新的效果,如何实现刷新呢?总不能我改一次就启动线程从新请求一次吧??
另外 adapter.notifyDataSetChanged();也不好用啊。。。。。
求高手指点迷津,小弟跪谢。。。。。

我通常的做法是,自己写adapter继承于BaseAdapter,然后加一个setData的公开方法。
在activity中可以开启一个线程去取数据,取完数据调用handler对listView进行加载或刷新。
如果是加载就new MyAdapter,listView.setAdapter
如果是刷新就adapter.setData(), adapter.notifyDataSetChanged().
有不懂再问。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-29
这种我建议设定一个自己的逻辑思维,采用sharedpreferences存储,那么你读取只能在这里面读取,不要去读取网路获取到的。方法有很多种,这个采用异步网络请求,我觉得最简单,一旦数据变化更新看你放到那个位置.如果是你页面没及时刷新,采用生命周期来做。so
easy!
第2个回答  2014-03-10
对界面操作后执行刷新界面方法。可以自己实现一个,也就是重新加载一次adapter 然后adapter.notifyDataSetChanged().
第3个回答  2015-11-15
大数据处理的方法为:
1、自己重写adapter,然后根据得到的屏幕大小和列表子项大小,动态显示固定数量的列表子项。
2、在列表子项的VIEW上进行手势识别(估计已经不能对整个屏幕进行手势识别了),只要某个子项收到滑动动作,就换屏(上下动作可识别),然后动态加载新的列表数据。
3、可以一次获取3X个子项,即屏幕只显示X个,但内存里把当前X个列表子项和上、下X个子项全缓存起来,这样滑屏会快些。