我设置了一个共享偏好变量:
SharedPreferences SPrefs;
SPrefs.edit().putString("SomeStringVariable", "sometext").commit();
然后我检索它:
String test1 = SPrefs.getString("SomeStringVariable", "Empty");
然后比较一下:
if(test1 == "sometext")
Toast.makeText(Main_Activity.this, test1, Toast.LENGTH_LONG).show();
Toast不起作用,这意味着test1!=“sometext” 但如果我删除“if”声明:
Toast.makeText(Main_Activity.this, test1, Toast.LENGTH_LONG).show();
Toast Works和“sometext”出现在模拟器中!
为什么会发生这种情况?
答案 0 :(得分:2)
你应该使用
if(test1.equals("sometext"))
使用.equals
或.equalsIgnoreCase
来比较字符串,因为==
会检查引用相等性。
参考:
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#equals(java.lang.Object)
答案 1 :(得分:0)
尝试使用
if(test1.equals("sometext")){
//Toast goes here
}
答案 2 :(得分:0)
您正在比较字符串,因此您应该使用.equals not ==
因为Raghunandan说你应该使用
if(test1.equals("sometext")) instead of
if(test1 == "sometext") replace this line with above and you are done.