android - 比较 SharedPreference 中的两个字符串

标签 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 有效,“sometext”出现在模拟器中!

为什么会这样?

最佳答案

你应该使用

 if(test1.equals("sometext"))

使用 .equals.equalsIgnoreCase 比较字符串,因为 == 检查引用是否相等。

引用:

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#equals(java.lang.Object)

关于android - 比较 SharedPreference 中的两个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20562312/

相关文章:

android - Material android 芯片在 xml 布局中膨胀时崩溃

java - 即使有 try catch 也会获取 RuntimeException

android - 在完整的应用程序中隐藏滚动条

android - 添加后如何在 Android 中实现下拉导航操作栏?

android - 在图书馆项目中使用 Room DB

android - 拥有.apk 可以提取其源代码。 Android 应用程序安全吗?

android - 构建 Android 应用程序时如何从 gradle 生成 OpenAPI 源

android - Grails Firebase 云消息传递插件

android - 想在我的应用程序 android 中包含动画

android - 如果有互联网连接,我可以使用 PC 检查模拟器吗?