0

tabActivity が存在する Android アプリケーションを作成しています。

私のタブアクティビティの on create メソッドを以下に示します。

protected void onCreate(Bundle savedInstanceState)
{
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);      
    setContentView(R.layout.logged);
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_background);
    mytab=(TabHost)findViewById(android.R.id.tabhost);
    Log.e("id",mytab.getId()+"");
    mytab.setup();  
    setupTab( "AAAA","AAAA.class",tabImages[2]);
    setupTab( "BBBB","BBBB.class",tabImages[1]);
    setupTab("CCCC","CCCC.class",tabImages[0]);
    setupTab("DDDD","DDDD.class",tabImages[3]);
    setupTab("EEEE","EEEE.class",tabImages[4]);
}

onSaveInstanceState(Bundle savedInstanceState) そして、いくつかの質問を検索することで、とを追加するというアイデアを得ましたonRestoreInstanceState(Bundle savedInstanceState)。これら 2 つの関数のコードを以下に示します。

@Override
protected void onSaveInstanceState(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onSaveInstanceState(savedInstanceState);
    savedInstanceState.putInt("tab_id",current_tab);
    Log.e("tab",""+savedInstanceState.getInt("tab_id"));
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onRestoreInstanceState(savedInstanceState);
    mytab.setCurrentTab(savedInstanceState.getInt("tab_id"));
    Log.e("tab",""+savedInstanceState.getInt("tab_id"));
}

ただし、現在のタブは表示されません。それは私のデフォルトのタブタブ(0)を示しています..私を助けることができます. 私のコードに追加するものは他にありますか。

4

1 に答える 1

1

動かしてみてください

mytab.setCurrentTab(savedInstanceState.getInt("tab_id"));

onCreate ()メソッドに

protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState); 
   // intialising and setup TabHost
   if (savedInstanceState != null) {
      mytab.setCurrentTab(savedInstanceState.getInt("tab_id"));
   }
}

これで動作するはずです。

于 2013-03-15T11:09:11.307 に答える