我正在尝试为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编辑器,但我无法得到一个完整的例子。
你能帮忙吗?
答案 0 :(得分:3)
这:lang == "english"
应为lang.equals("english")
。
使用equals
或equalsIgnoreCase
比较字符串(与任何其他对象一样)。 ==
运算符比较对象引用,而不是对象的内容,因此您的检查始终被评估为false。