可以通过XML为RingtonePreference插入一个android:defaultValue特性吗?..."/>
android defaultvalue,我可以通过XML为RingtonePreference插入一个android:defaultValue特性吗?...
找到了一个办法,在设置默认铃声。
对于同时使用
RingtonePreference
和
PreferenceManager.setDefaultValues()
,
android:defaultValue
在一个
铃声参考
接收铃声URI的字符串。通过提供空字符串,您将首选项默认为“silence”,而其他字符串可能会导致没有有效的URI。
那么,解决的办法是提供一个假的字符串,比如
android:defaultValue="defaultRingtone"
:
android:title="Alarm" android:name="Alarm"
android:summary="Select an alarm"
android:ringtoneType="alarm" android:showDefault="true"
android:defaultValue="defaultRingtone" />
打电话时
首选项管理器.setDefaultValues()
,获取首选项,并检查是否正在存储伪字符串:
// Set the stored preferences to default values defined in options.xml
PreferenceManager.setDefaultValues(this, R.layout.options, false);
// Check the stored string value, under the RingtonPreference tag
final SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
final String savedUri = savedState.getString("alarm", "");
// By default, set the alarm's URI to null
Uri alarmUri = null;
// Check if a String was actually provided
if(savedUri.length() > 0) {
// If the stored string is the bogus string...
if(savedUri.equals("defaultRingtone")) {
// Set the alarm to this system's default alarm.
alarmUri = Settings.System.DEFAULT_ALARM_ALERT_URI;
// Save this alarm's string, so that we don't have to go through this again
final SharedPreferences.Editor saveEditor = saveState.edit();
saveEditor.putString("alarm", alarmUri.toString());
saveEditormit();
}
// Otherwise, retrieve the URI as normal.
else {
alarmUri = Uri.parse(savedUri);
}
}
更多推荐
android defaultvalue,我可以通过XML为RingtonePreference插入一个android:defaultValue特性吗?...
发布评论