2

我有TabActivity其中包含 4 个选项卡。每个选项卡都有一个FragmentActivity和 2-3 Fragments

从 Fragment,我要去一个Activity不是Tabs.
在单击 Back 按钮时Activity,我想回到上一个Fragment,而不破坏该 Activity。

我正在覆盖该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

您需要做的是,您已经在 Activity 中覆盖了以下方法,而不是使用 KeyCode Back,

@Override
public void onBackPressed() {

super.onBackPressed();

并使用 SharedPrefrence 保存 Button 的状态,下次进入 Activity 时从 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 回答