我是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;);
答案 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()。