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());

saveEditor.commit();

}

// Otherwise, retrieve the URI as normal.

else {

alarmUri = Uri.parse(savedUri);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值