2011-04-04 65 views
0

因此,我只是試圖「記住」使用後退按鈕關閉應用程序時選中的選項卡。Android - 使用後退按鈕關閉後打開時仍然存在問題

繼早期的問題和一些研究我在我的標籤有:

mSetTab(); 
} 
public void onResume() 
{ 
     super.onResume(); 
     mSetTab(); 
} 
    private void mSetTab() 
{ 
    SharedPreferences myPrefs = 
     this.getSharedPreferences("myPrefs",MODE_WORLD_READABLE); 
    myPrefs.edit().putInt("tabToggle", 2).commit(); 
} 

現在我已經使用其他功能測試,這是「乾杯」中的「tabToggle」的值,它似乎是工作很開心。

在我的OnCreate MainActivity我:

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

,因爲它似乎總是返回0,不管我做什麼,這是令人沮喪的我。所以我認爲我的部分代碼是錯誤的,但是無法解決問題。

任何幫助一如既往是非常感謝。

菲爾使用getApplicationContext

回答

0

嘗試()而不是此在this.getSharedPreferences。

+0

試過,沒有工作: 我: 私人詮釋mCheckTab() \t { \t \t SharedPreferences myPrefs = getApplicationContext()getSharedPreferences( 「myPrefs」,MODE_WORLD_READABLE)。 \t \t int whichTab = myPrefs.getInt(「tabToggle」,0); (this,「whichTab =」+ whichTab,Toast.LENGTH_SHORT).show(); \t \t return whichTab; \t} 即使我知道它應該是2,吐司返回0。 然而,通過敬酒被送到屏幕判斷。第一個選項卡'0'是打開的,不管它知道什麼tabToggle設置爲2,但然後將其設置爲0,我認爲這是在使用tabHost.setCurrentTab()之前完成的。 – Phil 2011-04-04 14:03:18

0

嘗試使用

PreferenceManager.getDefaultSharedPreferences(this) 
0

要調用從的onResume的mSetTab()方法。你應該從onPause()調用它。