基本上我正在尝试在我的应用中“记住”当应用程序退出时哪个标签最后打开。因此,当它下次启动时,它会在该选项卡上打开。
所以我有一个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.
我是如何解决这个问题的?
干杯
菲尔
答案 0 :(得分:0)
您在进行更改后忘记在prefsEditor上调用commit()
了吗?
答案 1 :(得分:0)
您需要致电commit
。有一种很好的方法,因为每个编辑器方法依次返回一个编辑器:
SharedPreferences myPrefs =
this.getSharedPreferences("myPrefs",MODE_WORLD_READABLE);
myPrefs.edit().putInt("tabToggle", X).commit();
主页键似乎可以正常工作,因为您的应用尚未关闭且仍在后台运行。