按下后退按钮

时间:2012-08-29 06:16:09

标签: android android-tabhost

我有TabActivity,其中包含4个标签。每个标签都有一个FragmentActivity和2-3 Fragments

从片段中,我将转到Activity,而Tabs不属于Activity。 在点击Fragment的“后退”按钮时,我想回到之前的public boolean onKeyDown(int keyCode, KeyEvent event), 没有破坏那个活动。

我重写了{{1}}方法,但问题是它显示的是没有Tabs的上一个片段。我希望显示标签......

2 个答案:

答案 0 :(得分: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....
       }  
    }

答案 1 :(得分:1)

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

@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();
}