Android 选项卡主机片段保存实例
我有一个带有5个选项卡的Tabhost:tab1、tab2、tab3、tab4、tab5Android 选项卡主机片段保存实例,android,android-fragments,android-tabhost,savestate,fragment-tab-host,Android,Android Fragments,Android Tabhost,Savestate,Fragment Tab Host,我有一个带有5个选项卡的Tabhost:tab1、tab2、tab3、tab4、tab5 它们都有相同的片段,但内容不同。 我的片段onCreateView方法包含以下代码: switch(tabtag){ case 1: loaddata1(); break; case 2: loaddata2(); break; case 3: loaddata3(); break; case 4:
它们都有相同的片段,但内容不同。
我的片段
onCreateView
方法包含以下代码:
switch(tabtag){
case 1:
loaddata1();
break;
case 2:
loaddata2();
break;
case 3:
loaddata3();
break;
case 4:
loaddata4();
break;
case 5:
loaddata5();
break;
}
我正确加载了相关数据,但我希望每个选项卡只加载一次数据。我使用了saveInstanceState上的
和onActivityCreated上的方法:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean("1", isFirsttime1);
outState.putBoolean("2", isFirsttime2);
outState.putBoolean("3", isFirsttime3);
outState.putBoolean("4", isFirsttime4);
outState.putBoolean("5", isFirsttime5);
outState.putBoolean("6", isFirsttime6);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
// Restore last state for checked position.
isFirsttime1 = savedInstanceState.getBoolean("1");
isFirsttime2 = savedInstanceState.getBoolean("2");
isFirsttime3 = savedInstanceState.getBoolean("3");
isFirsttime4 = savedInstanceState.getBoolean("4");
isFirsttime5 = savedInstanceState.getBoolean("5");
isFirsttime6 = savedInstanceState.getBoolean("6");
}
}
因此,在onCreateView
中,我在每个开关案例中添加了以下代码:
if (isFirsttime){
loaddata();
}
else{
//use from my view state
}
但它不是这样工作的,我想因为我再次使用了同一个片段,onSaveInstanceState
方法未调用
我怎样才能解决它?
提前谢谢