java - Android 应用程序首选项中的值是否会自动保存?

标签 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();

我得到“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")

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

关于java - Android 应用程序首选项中的值是否会自动保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7048314/

相关文章:

android - 如何将 App Secret 集成到您的 Adjust SDK 中?

android - 检测 fragment 中的滑动手势

java - 如何从 Android 上的 WebView 中的特定文件夹中打开 html 文件

java - 声称不相等的值,即使它们是相等的

java - Scala 案例类到 Spring POJO

java - Foursquare Java API 对于 "checkinsAdd()"api 调用似乎有错误的参数类型

android - 我在查询一个值时经常出现 SQLiteDoneException,为什么?

android - 在android中以编程方式部分关闭屏幕

java - 方法实现

android - 正在运行 Android Marketplace Crawler ('hg' 目录?)