2013-10-08 68 views
1

我在我的一個活動中使用了SharedPreference,並且我想在其他活動中引用相同的值並獲取其值。我這樣做如下:沒有得到共享首選項的確切值:

1個

類級別變量:

String PREFS_NAME = "Login"; 
SharedPreferences sp; 

的值設置爲SharedPreference

public void savePref(String key, boolean value) { 
     SharedPreferences sp = getSharedPreferences(PREFS_NAME,0); 
     Editor edit = sp.edit(); 
     edit.putBoolean("loggdin", value); 
     edit.commit(); 
     Toast.makeText(getApplicationContext(), "Login = " + value, 
       Toast.LENGTH_LONG).show(); 

    } 

2級

類級別變量:

SharedPreferences sp; 
String PREFS_NAME = "Login"; 

在的onCreate:(同時也查看評論)

SharedPreferences sp = getSharedPreferences(PREFS_NAME,0); 
     boolean channel = (sp.getBoolean("loggdin", true));// I get the value true or false depending on what I pass as a second argument here, pretty confused! 
     if (channel == true){ 
      Toast.makeText(getApplicationContext(), "true"+channel, 10000).show(); 
     }else { 
      Toast.makeText(getApplicationContext(), "false"+channel, 10000).show(); 
     } 

無法明白的地方我錯了,任何提示?

+0

如果您的共享首選項中沒有值,則表示您無法在編輯器中設置布爾值 – KDeogharkar

+0

中的第二個參數是獲取的默認值是如上所述,我在PREFS_NAME中聲明瞭PREFS_NAME,將完全相同的字符串分配給它。 – User3

+0

什麼吐司顯示? – KDeogharkar

回答

1

您是否嘗試過通過調試程序來檢查?

+0

嘿我從來沒有使用調試,你怎麼做?請原諒我對Android和Java的新看法。 – User3

+0

我認爲問題在別的地方。你能否發佈整個活動的代碼? –

+0

嘿,我修好了,實際上我的micromax手機很奇怪,在模擬器上測試過,它工作得很棒:)我仍然很想知道調試的工作原理。 – User3

0

試試這個我工作的代碼..

public static boolean getBooleanFromSP(String key) { 
// TODO Auto-generated method stub 
    SharedPreferences preferences = getApplicationContext().getSharedPreferences(" SHARED_PREFERENCES_NAME ", android.content.Context.MODE_PRIVATE); 
    return preferences.getBoolean(key, false); 
}//getPWDFromSP() 


public static void saveBooleanInSP(String key, boolean value){ 
    SharedPreferences preferences = getApplicationContext().getSharedPreferences(" SHARED_PREFERENCES_NAME ", android.content.Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor =  preferences.edit(); 
    editor.putBoolean(key, value); 
    editor.commit(); 
}//savePWDInSP() 
+0

嘿Brijesh如果你能解釋我的代碼中有什麼問題,那將是非常好的。 – User3

+0

沒有發現你的代碼有什麼問題,你應該調試它,只有你可能會發現代碼的問題。 –