3

我有一个静态键/值对列表,我需要将其包含在我的项目中,如下所示:

givenName : First Name
sn        : Last Name
mail      : Email
... snip ...

我会把它放在 Android 项目的哪个位置?

谢谢埃里克

4

3 回答 3

2

Android 提供了一个预构建的内容提供程序包装器SharedPreferences,该包装器专门用于在键值对中存储原语。

        SharedPreferences mySharedPrefs = PreferenceManager
            .getDefaultSharedPreferences(getApplication());
        mySharedPrefs.edit().putString(key, value).commit();

WheregetApplication()仅用作获取应用程序上下文的方法。取回值

        SharedPreferences mySharedPrefs = PreferenceManager
            .getDefaultSharedPreferences(context);
        String value = mySharedPrefs.getString(key, null);

这将返回存储的带有 key 的 String ,如果没有存储任何内容key,则返回。null

于 2012-05-10T14:32:32.667 回答
1

您需要保存在以下位置的 XML 文件res/values/strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="givenName">First Name</string>
    <string name="sn">Last Name</string>
    <string name="mail">Email</string>
</resources>

以下是如何访问其他 xml 中的值:

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/givenName" />

或者这是您可以从 Java 代码访问值的方式:

String string = getString(R.string.givenName);
Log.d("Test", string); // Outputs "First Name" to LogCat console.

查看此 Android 开发指南以获取有关字符串资源的完整参考。

于 2012-05-10T14:00:44.617 回答
1

如果您真的必须使用静态/全局变量,请将它们放入您扩展 Application 的自定义类中。像这样:

public classYourApplication extends Application {
    protected Bar myBar;

    public Bar getBar() { return myBar; }
    public void setBar(Bar bar) { myBar = bar; }
    ...
}

声明您将通过清单使用自定义应用程序类。

<application
    android:icon="@drawable/ic_launcher_noteit1"
    android:label="@string/app_name" 
    android:theme="@style/App_Theme"
    android:name="YourApplication" 
    android:debuggable="true">

现在您可以使用 (YourApplication) getApplication() 从任何活动中访问您的应用程序对象。请注意,这不是推荐的方法。推荐的方法是使用单例模式。(答案取自我的问题答案之一)

于 2012-05-10T14:17:56.440 回答