我正在尝试为 Android 实验性应用程序创建首选项。不过我可以让偏好发挥作用。
我想要使用的首选项确定显示语言并使用此函数来检索它:
private String selectLang()
{
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String lang = preferences.getString("lang", "n/a");
return lang;
}
然后在 ListActivity 的 onCreate 方法中,我使用此代码来显示正确的语言:
String lang = selectLang();
String title = (lang == "english") ? "English" : "Arabic";
title 是数据库中的一列。该代码似乎不起作用,无论如何我都会得到阿拉伯语。我使用这段代码只是为了知道 lang 的值:
Toast.makeText(this, lang, Toast.LENGTH_LONG).show();
我得到“english”,但不显示英语。
这是我的列表 XML:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="lang">
<item>Arabic</item>
<item>English</item>
</string-array>
<string-array name="langValues">
<item>arabic</item>
<item>english</item>
</string-array>
</resources>
我已经阅读了这里的许多答案,因此我应该使用 SharedPreference 编辑器,但我无法获得完整的工作示例。
你能帮忙吗?
最佳答案
这个:lang == "english"
应该是lang.equals("english")
。
使用equals
或equalsIgnoreCase
比较字符串(与任何其他对象一样)。 ==
运算符比较对象引用,而不是对象内容,因此您的检查始终评估为 false。
关于java - Android 应用程序首选项中的值是否会自动保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7048314/