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
原创粉丝点击