RingtonePreference总是空:(
-
26-09-2019 - |
题
<?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。但是,
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.getString("app_ringtone", null);
总是返回null。我调试的设备(HTC野火)上。
解决方案
下面是一个示例项目证明收集的喜好,包括手机铃声。如果这样做在装置上不工作,则有可能是兼容性问题与设备。
其他提示
在我的情况下,问题是,我在PreferenceActivity overrided onActivityResult并没有援引super.onActivityResult(...)。 现在,它工作正常:
public synchronized void onActivityResult(final int requestCode,
int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
<强>有问题的XML:强>
<activity android:name="Activity1"
android:label="Activity 1"/>
<activity android:name="Activity2"
android:label="Activity 2" />
<activity android:name="Settings"
android:label="Settings" />
我改变的机器人:名称= “活性1”以<强>机器人:名称=”。活性1" 强>的所有活动和代码开始工作。该代码还故障如果在机器人:showSilent =“假” 强>属性被包括在 RingtonePreference 强>可以是这是一个错误。我有很多试错后,想通了这一点。任何想法,请指教@Commonsware。
<强>工作XML:强>
<activity android:name=".Activity1"
android:label="Activity 1"/>
<activity android:name=".Activity2"
android:label="Activity 2" />
<activity android:name=".Settings"
android:label="Settings" />
不隶属于 StackOverflow