完美 解决fragment中listview数据丢失问题和问题分析
来源:互联网 发布:域名投资是什么 编辑:程序博客网 时间:2024/06/08 14:58
解决fragment中listview数据丢失问题
private ListViewForScrollViewmListview;
private FindShareAdatptershareAdatpter = null;
private List<TaskFindInfo>tastlistdata=null;
首先分析下它的生命周期,与 activity 不同的是,这个 rootivew 被重复创建过
那listview 肯定也被重复初始化,自然它的 getAdapter 就为空了,那就相当于没有内容了;
但整个 fragment 只被创建过一次,并没有走onDestroy 死亡 的方法;
一个类中的私有成员只有在它 上层类被回收时才会被回收, 其实 tastlistdata和 shareAdatpter 都没有被回收,也就不需要反复加载数据了;
10-24 09:17:22.866 13330-13330/nabei.com.automat D/RonyDebug: onCreate
10-24 09:17:22.867 13330-13330/nabei.com.automat D/RonyDebug: onCreateView
10-24 09:17:22.956 13330-13330/nabei.com.automat D/RonyDebug: onActivityCreated
10-24 09:17:22.966 13330-13330/nabei.com.automat D/RonyDebug: onResume
10-24 09:18:00.205 13330-13330/nabei.com.automat D/RonyDebug: onCreateView
10-24 09:18:00.212 13330-13330/nabei.com.automat D/RonyDebug: onActivityCreated
10-24 09:18:00.212 13330-13330/nabei.com.automat D/RonyDebug: onResume
10-24 09:18:38.212 13330-13330/nabei.com.automat D/RonyDebug: onCreateView
10-24 09:18:38.224 13330-13330/nabei.com.automat D/RonyDebug: onActivityCreated
10-24 09:18:38.224 13330-13330/nabei.com.automat D/RonyDebug: onResume
关键代码:
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if ( mListview.getAdapter()==null) {
if (shareAdatpter==null) {
shareAdatpter = new FindShareAdatpter(getActivity());
new HttpRest(getActivity(), mhandler, 1).get_findActivityList();
}else{
showlist(tastlistdata);
}
}
}
完整代码,并不需要对 其它数据作任何处理:
public class MainpageFind extends Fragment {
private ListViewForScrollView mListview;
private FindShareAdatpter shareAdatpter = null;
private List<TaskFindInfo> tastlistdata=null;
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if ( mListview.getAdapter()==null) {
if (shareAdatpter==null) {
shareAdatpter = new FindShareAdatpter(getActivity());
new HttpRest(getActivity(), mhandler, 1).get_findActivityList();//网络请求加载数据
}else{
showlist(tastlistdata);
}
}
}
private Handler mhandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
if (msg.what == 1) {
List<TaskFindInfo> taskinfos = (List<TaskFindInfo>) msg.obj;
tastlistdata=taskinfos;
showlist(taskinfos);
}
}
};
private void showlist(List<TaskFindInfo> tastlist) {
shareAdatpter.SetList(tastlist);
mListview.setAdapter(shareAdatpter);
shareAdatpter.notifyDataSetChanged();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.mainpage3, null);
bbstv = (TextView) view.findViewById(R.id.bbstv);
helptv = (TextView) view.findViewById(R.id.helptv);
helptv.setOnClickListener(this);
bbstv.setOnClickListener(this);
mListview = view.findViewById(R.id.actionlist);
return view;
}
}
阅读全文
0 0
- 完美 解决fragment中listview数据丢失问题和问题分析
- 解决fragment中listview数据丢失问题
- Android 解决ListView中有EditText时,数据丢失问题
- 用getChildFragmentManager解决Fragment嵌套Fragment数据丢失的问题
- ListView中使用EditText(解决EditText焦点丢失、保存数据以及滚动冲突的问题)
- 关于Fragment重叠问题分析和解决
- 工厂模式加单例管理Fragment,同时解决fragment切换数据丢失问题
- Android圆角ListView并完美解决和ScrollView共存问题
- Android圆角ListView并完美解决和ScrollView共存问题
- Android:完美解决listview的setonitemclicklistener 和 setontouchlistener冲突问题
- 完美解决listView和ScrollView滑动冲突的问题
- 在Fragment中使用PullToRefreshScrollView嵌套Listview问题的解决
- Fragment 重叠 遮盖问题 完美解决
- 完美解决Fragment重叠的问题
- Fragment中加载ListView问题
- Fragment中加载ListView问题
- ViewPager+Fragment实现选项卡,并且完美解决刷新和替换Fragment的问题
- 解决linux中flash掉电丢失数据问题
- python _、__和__xx__的区别
- 【产品经理三节课】第4章 产品调研入门
- 启动mongoDb服务
- 文本挖掘
- VMware Fusion DHCP方式下如何指定虚拟机IP地址
- 完美 解决fragment中listview数据丢失问题和问题分析
- opencv-相机校准和3D重建
- 核函数逻辑回归和SVR
- 数据库并发情况下什么情况会出现脏读,如何防范脏读
- 视频监控安防平台--国标28181-2016 GB28181-2016 平台全项检测经历
- SVN分支的合并和同步
- [BZOJ2118]墨墨的等式(数学+图论)
- Tomcat如何管理APP
- centos安装出现 missing operating system