随时随地保存片段交易
saving fragment transaction whereever
最初我有一个 activity A,我要在其中打开一个片段,所以在这里我该如何保存该片段
因此,当我在销毁应用程序后启动我的应用程序时,它会在相同位置 Activity 中恢复该片段
为了回答方便这里是我的片段交易码:
Fragment newFragment = new ece_frag();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.fade_in,R.anim.fade_out);
transaction.replace(R.id.frame_layout, newFragment);
transaction.commit();
假设您有 3 个片段 A、B 和 C。
我为每个片段提供索引,例如 0->A、1->B、2->C。所以当我这样做时,我也像下面的代码一样保存索引:
Fragment newFragment = new A();
FragmentTransaction transaction =
getFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.fade_in,R.anim.fade_out);
transaction.replace(R.id.frame_layout, newFragment);
transaction.commit();
SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt("last_fragment", 0);//For fragment A saving index 0
editor.commit();
然后在 onCreate 中你可以使用这样的 if 情况:
SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
//0 here is the default value
int lastFragment = sharedPref.getInt("last_fragment", 0);
那你可以这样做
switch(lastFragment){
case 0:
//Load your fragment Here according to the index.
break;
case 1:
//Load your fragment Here according to the index.
break;
case 2:
//Load your fragment Here according to the index.
break;
}
希望这对您有所帮助。
最初我有一个 activity A,我要在其中打开一个片段,所以在这里我该如何保存该片段 因此,当我在销毁应用程序后启动我的应用程序时,它会在相同位置 Activity 中恢复该片段
为了回答方便这里是我的片段交易码:
Fragment newFragment = new ece_frag();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.fade_in,R.anim.fade_out);
transaction.replace(R.id.frame_layout, newFragment);
transaction.commit();
假设您有 3 个片段 A、B 和 C。
我为每个片段提供索引,例如 0->A、1->B、2->C。所以当我这样做时,我也像下面的代码一样保存索引:
Fragment newFragment = new A();
FragmentTransaction transaction =
getFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.fade_in,R.anim.fade_out);
transaction.replace(R.id.frame_layout, newFragment);
transaction.commit();
SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt("last_fragment", 0);//For fragment A saving index 0
editor.commit();
然后在 onCreate 中你可以使用这样的 if 情况:
SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
//0 here is the default value
int lastFragment = sharedPref.getInt("last_fragment", 0);
那你可以这样做
switch(lastFragment){
case 0:
//Load your fragment Here according to the index.
break;
case 1:
//Load your fragment Here according to the index.
break;
case 2:
//Load your fragment Here according to the index.
break;
}
希望这对您有所帮助。