Android-如何处理“后退”按钮关闭我的应用程序并在右侧选项卡上重新启动

Android-如何处理“后退”按钮关闭我的应用程序并在右侧选项卡上重新启动,android,button,android-tabhost,back,Android,Button,Android Tabhost,Back,基本上,我试图在我的应用程序中“记住”上次退出应用程序时打开的选项卡。以便下次启动时在该选项卡上打开 因此,我有一个tabhost作为我的主要活动,在五个tab活动中的每一个中,我都调用该方法: private void mSetTab(){ SharedPreferences myPrefs=this.getSharedPreferences("myPrefs",MODE_WORLD_READABLE); SharedPreferences.Editor prefsEditor

基本上,我试图在我的应用程序中“记住”上次退出应用程序时打开的选项卡。以便下次启动时在该选项卡上打开

因此,我有一个tabhost作为我的主要活动,在五个tab活动中的每一个中,我都调用该方法:

private void mSetTab(){
    SharedPreferences myPrefs=this.getSharedPreferences("myPrefs",MODE_WORLD_READABLE);
    SharedPreferences.Editor prefsEditor = myPrefs.edit();
    prefsEditor.putInt("tabToggle", X);
}
其中X为0-4,具体取决于选项卡

关于我的主要活动,我有:

tabHost.setCurrentTab(mCheckTab());
这要求:

private int mCheckTab() 
{
    SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
    int whichTab = myPrefs.getInt("tabToggle",0);

    return whichTab;
}
当使用Home键时,这一切似乎都可以正常工作,但当使用back按钮离开程序时,它似乎总是加载0

你知道我该怎么做吗

干杯


Phil

在进行更改后,您忘记在Prefeditor上调用
commit()

您需要调用
commit
。有一种很好的方法可以做到这一点,因为每个编辑器方法依次返回一个编辑器:

SharedPreferences myPrefs =
    this.getSharedPreferences("myPrefs",MODE_WORLD_READABLE);
myPrefs.edit().putInt("tabToggle", X).commit();

home键似乎起作用,可能是因为你的应用程序没有关闭,仍在后台运行。

谢谢Matt,我知道这很明显!:)在我的主要活动中仍然有一些不太正确的地方:tabHost.setCurrentTab(mCheckTab());}private int mCheckTab(){SharedPreferences myPrefs=this.getSharedPreferences(“myPrefs”,MODE_WORLD_READABLE);int whichTab=myPrefs.getInt(“tabToggle”,0);return whichTab;}但它似乎总是返回0,所以应用程序从第一个选项卡开始?有什么想法吗?