2013-01-06 36 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