<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Notifications">
<CheckBoxPreference
android:key="vibration"
android:title="Vibrate"
android:summary="Vibrate phone for notifications" />
<CheckBoxPreference
android:key="play_tone"
android:title="Play Ringtone"
android:summary="Play Ringtone for notifications" />
<RingtonePreference
android:key="app_ringtone"
android:dependency="play_tone"
android:title="Select Ringtone"
android:ringtoneType="notification"
android:showDefault="true"
android:shouldDisableView="true"
android:summary="Pick a Ringtone" />
</PreferenceCategory>
</PreferenceScreen>
這是我的偏好XML。但是,RingtonePreference總是空:(
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.getString("app_ringtone", null);
總是返回null。我調試的設備(HTC野火)上。
你怎麼知道它是空的?只是在調試器上,或者你真的強制關閉?如果是這樣,給我們一個堆棧跟蹤。你在getDefaultSharedPreferences或prefs.getString上獲得NPE嗎? – Falmarri 2010-09-30 16:08:24
看看我所做的prefs.getString(「app_ringtone」,null)調用。 – 2010-09-30 16:24:40
我從** SharedPreferences.getAll().keySet()**中發現,「app_ringtone」鍵不在第一位。 – 2010-09-30 17:00:30