1

基本上我试图在我的应用程序中“记住”应用程序退出时最后打开的选项卡。这样下次启动时它会在该选项卡上打开。

因此,我有一个 tabhost 作为我的主要活动,并且在五个选项卡活动中的每一个中,我都调用了该方法:

private void mSetTab(){
    SharedPreferences myPrefs=this.getSharedPreferences("myPrefs",MODE_WORLD_READABLE);
    SharedPreferences.Editor prefsEditor = myPrefs.edit();
    prefsEditor.putInt("tabToggle", X);
}

其中 X 为 0-4,具体取决于选项卡。

在我的 mainActivity 中,我有:

tabHost.setCurrentTab(mCheckTab());

哪个电话:

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

    return whichTab;
}

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

任何想法我如何解决这个问题?

干杯

菲尔

4

2 回答 2

0

进行更改后,您忘记调用commit()您的 prefsEditor?

于 2011-04-03T06:47:22.073 回答
0

你需要打电话commit。有一个很好的方法可以做到这一点,因为每个编辑器方法都会依次返回一个编辑器:

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

Home 键可能似乎起作用了,因为您的应用程序没有关闭并且仍在后台运行。

于 2011-04-03T07:01:58.240 回答