2013-01-06 62 views
-4

您能否告訴我爲什麼這if總是以else聲明結束?SharedPreferences上的android getString()

SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); 
ustawienia_wybrana_gra3=(String)sharedPrefs.getString("ustawienia_wybrana_gra","-1"); 
if (ustawienia_wybrana_gra3==(String)"1") 
    ustawienia_wybrana_gra2=getString(R.string.ustawienia_gra_1_nazwa); 
else 
    ustawienia_wybrana_gra2=getString(R.string.ustawienia_gra_2_nazwa); 

回答

2

您在比較字符串與==,這是比較對象時出錯的。 ==比較引用,而不是實際的對象內容。使用.equals(),因爲那實際上會做比較。

SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); 
ustawienia_wybrana_gra3=sharedPrefs.getString("ustawienia_wybrana_gra","-1"); 
if (ustawienia_wybrana_gra3.equals("1")) 
    ustawienia_wybrana_gra2=getString(R.string.ustawienia_gra_1_nazwa); 
else 
    ustawienia_wybrana_gra2=getString(R.string.ustawienia_gra_2_nazwa); 

此外,您需要演員。做(String)正在將一個字符串轉換爲一個字符串,這是多餘的。

0
String hello = "hello"; 

if(hello.equals("hello"){ 
} 

請比較字符串這

+0

非常感謝它像! – Avatarus