pix*_*xel 50 xml android android-preferences
我的问题是,当我启动应用程序并且用户没有打开我的PreferenceActivity
时候,当我检索它们时,不会获得我的preference.xml文件中定义的任何默认值.
preference.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:key="applicationPreference" android:title="@string/config"
>
<ListPreference
android:key="pref1"
android:defaultValue="default"
android:title="Title"
android:summary="Summary"
android:entries="@array/entry_names"
android:entryValues="@array/entry_values"
android:dialogTitle="@string/dialog_title"
/>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
我的主要活动(onCreate
方法)的片段:
SharedPreferences appPreferences = PreferenceManager.getDefaultSharedPreferences(this);
String pref1 = appPreferences.getString("pref1", null);
Run Code Online (Sandbox Code Playgroud)
结果我得到了一个null
值.
Dav*_*ebb 107
在onCreate()
你的主要的Activity
只是调用的PreferenceManager.setDefaultValues()
方法.
PreferenceManager.setDefaultValues(this, R.xml.preference, false);
Run Code Online (Sandbox Code Playgroud)
这将读取您的preference.xml
文件并设置其中定义的默认值.将readAgain
参数设置为false
意味着只有在过去从未调用此方法时才会设置默认值,因此您无需担心每次Activity
创建时都会覆盖用户的设置.
yan*_*nko 14
我会简短的.:)
strings.xml(实际上我只有prefs.xml用于首选项):
<string name="pref_mypref_key">mypref</string>
<string name="pref_mypref_default">blah</string>
Run Code Online (Sandbox Code Playgroud)
preferences.xml:
android:key="@string/pref_mypref_key"
android:defaultValue="@string/pref_mypref_default"
Run Code Online (Sandbox Code Playgroud)
MyActivity.java:
String myprefVal = prefs.getString(getString(R.string.pref_mypref_key), getString(R.string.pref_mypref_default));
Run Code Online (Sandbox Code Playgroud)
您的呼叫getString()
有null
第二个参数.将其更改为您想要的默认值.
归档时间: |
|
查看次数: |
42171 次 |
最近记录: |