Activity-Fragment存储与返回
来源:互联网 发布:淘宝服装店铺文案 编辑:程序博客网 时间:2024/04/30 13:18
package TokenLeiBao;import java.lang.ref.SoftReference;import java.util.HashMap;import android.support.v4.app.Fragment;import FragmentLeiBao.CaoMaFragment;import FragmentLeiBao.ChakanFragment;import FragmentLeiBao.DiaochaFragment;import FragmentLeiBao.ViewDiaochaFragment;import FragmentLeiBao.ViewGerensFragment;import FragmentLeiBao.ViewGopgeFragment;import FragmentLeiBao.ViewPhotoFragment;import FragmentLeiBao.ViewXiugaiFragment;import FragmentLeiBao.ViewYonghuFragment;import FragmentLeiBao.ViewChouquFragment;import FragmentLeiBao.ViewxianchaFragment;import FragmentLeiBao.ViewxuanFragment;public class ViewIndex { public static final int TEST1_VIEW= 0; public static final int VIEW_LOGIN = 1; public static final int VIEW_SURVEY_LIST = 2; public static final int VIEW_USER_CENTER = 3; public static final int VIEW_SURVEY_DETAIL = 4; public static final int VIEW_SURVEY_Nu = 5; public static final int View_SID_Niu=6; public static final int View_Chou_Qi=7; public static final int View_Cha_kan=8; public static final int View_Xuan_Ze=9; public static final int View_Xuan_cha=11; public static final int VIEW_USER_CENTE = 12; public static final int VIEW_Sao_Ma = 13;// /** public static final int SWITCHINDEX_0 = 0; public static final int SWITCHINDEX_1 = 1; public static HashMap<String, SoftReference<Fragment>> viewMap = new HashMap<String, SoftReference<Fragment>>(); public static Fragment getView(int index){ Fragment contentViewTemp = null; SoftReference<Fragment> ref = viewMap.get(""+index); if(ref!=null){ if(ref.get()!=null){ contentViewTemp = ref.get(); if(contentViewTemp!=null){ if(contentViewTemp.getActivity()!=null&& contentViewTemp.getActivity().isFinishing()){ viewMap.remove(ref); contentViewTemp = null; } } } }//每新建一个Fragment须在此注册
Fragment contentView = null; int switchIndex = index/10;/*0至第10个Fragment*/ try { switch(switchIndex){ case SWITCHINDEX_0: switch(index){ case VIEW_LOGIN: contentView = contentViewTemp==null?new ViewGopgeFragment():contentViewTemp;
break; case VIEW_SURVEY_LIST: contentView = contentViewTemp==null?new DiaochaFragment():contentViewTemp; break; case VIEW_USER_CENTER: contentView = contentViewTemp==null?new ViewGerensFragment():contentViewTemp; break; case VIEW_SURVEY_DETAIL: contentView = contentViewTemp==null?new ViewXiugaiFragment():contentViewTemp; break; case VIEW_SURVEY_Nu: contentView = contentViewTemp==null?new ViewYonghuFragment():contentViewTemp; break; case View_SID_Niu: contentView = contentViewTemp==null?new ViewDiaochaFragment():contentViewTemp; break; case View_Chou_Qi: contentView = contentViewTemp==null?new ViewChouquFragment():contentViewTemp; break; case View_Cha_kan: contentView = contentViewTemp==null?new ChakanFragment():contentViewTemp; break; case View_Xuan_Ze: contentView = contentViewTemp==null?new ViewxuanFragment():contentViewTemp; break; } break; case SWITCHINDEX_1:/*11至第20个Fragment*/ switch (index){ case View_Xuan_cha: contentView = contentViewTemp==null?new ViewxianchaFragment():contentViewTemp; break; case VIEW_USER_CENTE: contentView = contentViewTemp==null?new ViewPhotoFragment():contentViewTemp; break; case VIEW_Sao_Ma: contentView = contentViewTemp==null?new CaoMaFragment():contentViewTemp; break; } break; } if(contentViewTemp==null){ SoftReference<Fragment> ref0 = new SoftReference<Fragment>(contentView); viewMap.put(""+index, ref0); } } catch (Exception e) { e.printStackTrace(); } catch(OutOfMemoryError e){ e.printStackTrace(); viewMap.clear(); System.gc(); System.gc(); System.gc(); } return contentView; }}
Activity类:/*切换线性布局显示不同Fragment*/ changeFragment(ViewIndex.VIEW_LOGIN, null);fragment类:如果过要做保存:View view = inflater.inflate(R.layout.shopping_main,container,false);return view;
搜索:Android-Fragment-界面保存
使用前先进入ViewIndex类,添加fragment类
后退: Operation pre = ((MainActivity)getActivity()).accessedViews.pop();//从栈空间里面将上一条数据抛出来
((MainActivity)getActivity()).changeFragment(pre.getCode(), pre.getBundle(), false);
页面切换: ((MainActivity) getActivity()).changeFragment(ViewIndex.View_Cha_kan, null);
注:ViewIndex.VIEW_SURVEY_LIST为你想要跳转的页面,ViewIndex类可以添加Fragment
0 0
- Activity-Fragment存储与返回
- activity与fragment---监听fragment返回键,fragment中横竖屏切换
- Fragment返回栈与Activity任务栈的结合使用
- fragment与fragment,activity与fragment传值
- Fragment与Activity通讯
- Fragment与Activity
- Fragment与Activity通信
- Activity与Fragment生命周期
- fragment与activity通讯
- Fragment与Activity通讯
- Fragment与Activity交互
- Fragment与Activity通讯
- Activity与Fragment
- Fragment与Activity生命周期
- Fragment与Activity生命周期
- Fragment与Activity通讯
- Fragment与Activity通信
- Fragment与Activity通讯
- PAT-A1035
- iOS星级评价效果
- Java中常用的集合小结
- Mac 修改host
- PAT-A1036
- Activity-Fragment存储与返回
- PAT-A1037
- dyld: Library not loaded: @rpath/libswiftCore.dylib / Image not found
- Linux 添加/删除用户和用户组
- PAT-A1038
- angular js(2)和ionic(2)的总结
- C# 利用委托实现窗体间传值
- PAT-A1039
- XML中输入特殊符号