1

我正在尝试创建一个游戏。现在对于我需要保留的一些数据(音乐、效果、背景),我想使用preferences.

我创建xml名为的新文件preferences.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <EditTextPreference android:key="music" android:title="Some title" android:defaultValue="true"/>


</PreferenceScreen>

然后我转到该位置(具有 root 权限)并且只有 lib 文件夹 data/data/my.app.folder/。没有shared_prefs文件夹。

当我尝试访问首选项时,它为空。我尝试了getSharedPreferences()PreferenceManager.getDefaultSharedPreferences()。可能是什么原因?我也没有活动preferences,我想手动管理它们。

我怎样才能克服这个问题?

4

2 回答 2

1

要使用共享首选项,您必须先创建它。像这样:

SharedPreferences prefs = getApplicationContext().getSharedPreferences(
      "music", Context.MODE_PRIVATE);

第一次在其中创建首选项:

    final String BACKGROUND_DEFAULT_VALUE = "on";
    final String DEFAULT_TITILE = "";
    final String TITILE_KEY = "title";
    final String BACKGROUND_KEY = "background_key";
    Editor editor= prefs.edit();
    editor.putString(TITILE_KEY, DEFAULT_TITILE);
    editor.putString(BACKGROUND_KEY, BACKGROUND_DEFAULT_VALUE);
    editor.commit();

比在其中编辑/保存首选项:

    Editor editor= prefs.edit();
    editor.putString(TITILE_KEY, "new title");
    editor.putString(BACKGROUND_KEY, "new background value i.e on/off");
    editor.commit();

比阅读偏好:

String background_value = prefs.getString(BACKGROUND_KEY); 
String title_value = prefs.getString(TITILE_KEY ); 

您可以在位置看到您的共享首选项文件,它会在创建后出现。

/data/data/<packagename>/shared_prefs/music.xml

有关更多详细信息和帮助,android sdk 的示例目录包含一个检索和检索共享首选项的示例。它位于:

<android-sdk-home>/samples/android-<platformversion>/ApiDemos directory

希望能帮助到你。

于 2013-03-03T04:38:13.880 回答
0

有两种不同类型的与首选​​项相关的 xml 文件。您正在显示的是表示首选项层次结构(屏幕表示)的 xml 资源文件。第二个是包含实际键值对的文件。创建第一个不会创建第二个。您实际上需要使用 PreferenceActivity (或 Fragment 等效项或您自己的显示方法 - 据我了解 - 您打算这样做)来显示文件,或者您必须在代码中创建首选项。

于 2013-03-03T02:45:12.853 回答