В основном я пытаюсь "запомнить" в своем приложении последнюю вкладку, когда приложение было закрыто. Чтобы он открывался на этой вкладке, когда он запустился.
Итак, у меня есть табуст в качестве основного действия, и в каждой из пяти действий я вызываю метод:
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;
}
Все это работает нормально, когда используется ключ "Домой", но когда кнопка "Назад" используется для выхода из программы, она всегда загружается 0.
Любые идеи, как я обойду это?
Приветствия
Фил
Вам нужно позвонить commit
. Это хороший способ сделать это, поскольку каждый из методов редактора возвращает редактор по очереди:
SharedPreferences myPrefs =
this.getSharedPreferences("myPrefs",MODE_WORLD_READABLE);
myPrefs.edit().putInt("tabToggle", X).commit();
Вероятно, домашний ключ работал, потому что ваше приложение не закрывалось и все еще работало в фоновом режиме.
Вы забыли позвонить commit()
в свой prefsEditor после внесения изменений?