Kann ich einfügen einer android:defaultValue-Eigenschaft für RingtonePreference, über XML?
Gibt es einen Weg, um einen Standardwert in einem RingtonePreference, über XML? Zum Beispiel, hier ist, was mein preference.xml sieht aus wie.
<RingtonePreference android:key="alarm"
android:title="Alarm" android:name="Alarm"
android:summary="Select an alarm"
android:ringtoneType="alarm" android:showDefault="true" />
Wenn möglich, würde ich mag, um die RingtonePreference zu den Standard-Klingelton, wie diese:
<RingtonePreference android:key="alarm"
android:title="Alarm" android:name="Alarm"
android:summary="Select an alarm"
android:ringtoneType="alarm" android:showDefault="true"
android:defaultValue="defaultRingtone" />
- Habe versucht, die folgenden 2 mit kein Glück:android: defaultValue="Standard-Klingelton" android:defaultValue="0"
- Mehr Glück mit diesem: defaultValue="". Dies legt den Standardwert für "schweigen", jedoch. Es scheint RingtonePreference erwartet einen string-Wert, wo ein Klingelton befindet. Um den default-Wert, dann hätte ich die Zeichenfolge für den Standard-Klingelton in den Einstellungen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie definieren den Standard in die XML.
Wie du schon sagtest, es muss ein URI.
Legen Sie einfach die Standard-URI für das, was Sie brauchen.
Zum Beispiel, für eine Standard-alarm-Ton, Sie setzen würde:
Für eine Benachrichtigung, die Sie stellen würde:
Etc.
Herausgefunden zu arbeiten, um in die Einstellung der Standard-Klingelton.
Für die Menschen, die sowohl eine
RingtonePreference
undPreferenceManager.setDefaultValues()
,android:defaultValue
auf eineRingtonePreference
nimmt eine Zeichenfolge, die eine Klingelton-URI. Indem ein leerer string, Sie sind säumigen Sie die Einstellung auf "Stille", während die anderen Saiten werden wahrscheinlich dazu führen, daß keine gültige URI.Den work-around, dann ist eine falsche saite, wie
android:defaultValue="defaultRingtone"
:Beim Aufruf
PreferenceManager.setDefaultValues()
, schnappen Sie sich die Einstellung, und überprüfen Sie, ob die Schein-string gespeichert wird: