Android app偏好设置中的值是自动保存的吗?

时间:2011-08-13 03:07:28

标签: java android

我正在尝试为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();

我得到“英语”但英语不显示。

以下是我的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编辑器,但我无法得到一个完整的例子。

你能帮忙吗?

1 个答案:

答案 0 :(得分:3)

这:lang == "english"应为lang.equals("english")

使用equalsequalsIgnoreCase比较字符串(与任何其他对象一样)。 ==运算符比较对象引用,而不是对象的内容,因此您的检查始终被评估为false。