2

TabActivityは4つのタブを含むものを持っています。各タブには 1FragmentActivityと 2-3がありFragmentsます。

ActivityFragment から、 の一部ではないに行きTabsます。
そのから[戻る]ボタンをクリックしている間、そのアクティビティを破棄せずActivityに前のに戻りたい。Fragment

メソッドをオーバーライドしpublic boolean onKeyDown(int keyCode, KeyEvent event)ていますが、問題はタブなしで前のフラグメントを表示することです。タブを表示させたい...

4

2 に答える 2

1

アクティビティ クラスで onBackPressed メソッドを使用します。

   @Override
    public void onBackPressed(){
       if(you wanto go back){
           super.onBackPressed();
       }else{
           //if you dont want to go back 
           // do what you need hear....
       }  
    }
于 2012-08-29T06:23:21.190 に答える
1

あなたがしなければならないことは、KeyCode Back を使用する代わりに、Activity で以下のメソッドをオーバーライドすることです。

@Override
public void onBackPressed() {

super.onBackPressed();

そして、SharedPrefrence を使用してボタンの状態を保存し、次にアクティビティに入るときは、Sharedpreference から値を取得し、それに応じてボタンの有効状態を設定します。

例、

private void SavePreferences(){
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("state", button.isEnabled());
}

private void LoadPreferences(){
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
Boolean  state = sharedPreferences.getBoolean("state", false);
button.setEnabled(state);
}

@Override
public void onBackPressed() {
SavePreferences();
super.onBackPressed();
}

onCreate(Bundle savedInstanceState)
{
//just a rough sketch of where you should load the data
LoadPreferences();
}
于 2012-08-29T06:25:05.547 に答える