SharedPreferences文件名的名称是什么?

时间:2015-08-03 19:10:23

标签: android sharedpreferences android-preferences preferenceactivity

我是Android的新手,我有点困难了6个小时。

问题是我不知道首选项文件的名称,我需要从首选项文件中获取值。我正在使用Android Studio并创建了一个"设置活动"。除了SettingsActivity.java之外,我没有给任何文件命名。

所以我的问题是共享首选项文件的名称是什么(因为应用程序保留了值)。或者,如果有办法找出答案。

或许我在代码中遗漏了一些明显的东西。以下是我的相关代码。

String key = "example_text";
final String PREF_FILE_NAME = "SettingsActivity";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
String value = preferences.getString(key, " null");                

编辑1 :我有一个名为RemoteDevice.java的活动,在此活动中,我有一个用于互联网使用的异步任务子类。现在我通过上面提到的PreferencesActivity存储了IP地址,现在想要检索它。但我无法找到它。

编辑2:在以下代码中,我尝试从编辑文本中获取值。

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

<!-- NOTE: EditTextPreference accepts EditText attributes. -->
<!-- NOTE: EditTextPreference's summary should be set to its value by the activity code. -->
<EditTextPreference
    android:key="example_text"
    android:title="@string/pref_host_ip_address"
    android:defaultValue="@string/pref_default_host_address"
    android:selectAllOnFocus="true"
    android:inputType="numberDecimal"
    android:digits="123456789."
    android:capitalize="words"
    android:singleLine="true"
    android:maxLines="1" />

<!-- NOTE: Hide buttons to simplify the UI. Users can touch outside the dialog to
     dismiss it. -->
<!-- NOTE: ListPreference's summary should be set to its value by the activity code. -->
<ListPreference
    android:key="example_list"
    android:title="@string/pref_title_add_friends_to_messages"
    android:defaultValue="-1"
    android:entries="@array/pref_example_list_titles"
    android:entryValues="@array/pref_example_list_values"
    android:negativeButtonText="@null"
    android:positiveButtonText="@null" />

我猜这里android:key是在

中作为参数传递的关键
  

String value = preferences.getString(key,&#34; null&#34;);

3 个答案:

答案 0 :(得分:13)

  

我正在使用Android Studio并创建了一个&#34;设置活动&#34;。

然后通过SharedPreferences获取PreferenceManager.getDefaultSharedPreferences()。替换:

SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);

使用:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);

答案 1 :(得分:0)

您可以使用:

String key = "example_text";
final String PREF_FILE_NAME = "SettingsActivity";
shared = getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE);
String value = preferences.getString(key, " null");

但首先你要用你的钥匙保存一些价值,如:

shared.edit().putString(key,"MY_VALUE").commit();

答案 2 :(得分:0)

在真实设备上运行您的项目,如果创建了SharedPreferences文件(扩展名为.xml),您可以在设备的根目录中找到它,这里更准确:

/data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PREFS_NAME.xml 要么 /data/data/YOUR_PACKAGE_NAME/shared_prefs/YOUR_PACKAGE_NAME_preferences.xml

顺便说一下,你可以使用getPreferences()方法。改变你的

SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME,MODE_PRIVATE);

SharedPreferences preferences = getPreferences(MODE_PRIVATE);

您的SharedPreferences文件将获得默认名称。但请记住,只有在项目中不需要多个SharedPreferences文件时才值得使用getPreferences()而不是getSharedPreferences()。