比较SharedPreference中的两个字符串

时间:2013-12-13 08:42:22

标签: android

我设置了一个共享偏好变量:

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”出现在模拟器中!

为什么会发生这种情况?

3 个答案:

答案 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.