Android开发:静态键/值对的放置位置?

时间:2012-05-10 13:53:05

标签: android

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

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

我会把Android项目放在哪里?

由于 埃里克

3 个答案:

答案 0 :(得分:2)

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

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

其中getApplication()仅用作获取应用程序上下文的方法。要重新获得价值

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

这将返回带有键key的存储字符串,如果该键没有存储任何内容,则返回null

答案 1 :(得分:1)

您需要在res/values/strings.xml保存的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>

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

<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.

检查this Android Dev Guide以获取有关字符串资源的完整参考。

答案 2 :(得分:1)

如果你真的必须使用static / globals将它们放入扩展Application的自定义类中。像这样:

public classYourApplication extends Application {
    protected Bar myBar;

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

声明您将使用清单使用自定义Application类。

<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()从任何活动访问您的应用程序对象。请注意,这不是推荐的方法。推荐的方法是使用单例模式。 (从我的一个问题答案中回答)