我可以通过 XML 为 RingtonePreference 插入 android:defaultValue 特征吗?
有没有办法通过 XML 在 RingtonePreference 中添加默认值?例如,我的首选项.xml 如下所示。
<RingtonePreference android:key="alarm"
android:title="Alarm" android:name="Alarm"
android:summary="Select an alarm"
android:ringtoneType="alarm" android:showDefault="true" />
如果可能的话,我想将 RingtonePreference 设置为默认铃声,如下所示:
<RingtonePreference android:key="alarm"
android:title="Alarm" android:name="Alarm"
android:summary="Select an alarm"
android:ringtoneType="alarm" android:showDefault="true"
android:defaultValue="defaultRingtone" />
Is there a way to add a default value in a RingtonePreference, via XML? For example, here's what my preference.xml looks like.
<RingtonePreference android:key="alarm"
android:title="Alarm" android:name="Alarm"
android:summary="Select an alarm"
android:ringtoneType="alarm" android:showDefault="true" />
If possible, I'd like to set the RingtonePreference to the default ringtone, like this:
<RingtonePreference android:key="alarm"
android:title="Alarm" android:name="Alarm"
android:summary="Select an alarm"
android:ringtoneType="alarm" android:showDefault="true"
android:defaultValue="defaultRingtone" />
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以在 XML 中定义默认值。
正如你所说,它需要一个 URI。
只需输入您需要的默认 URI。
例如,对于默认警报声音,您可以输入:
对于通知,您可以输入:
等等。
You can define the default in the XML.
As you said, it needs a URI.
Simply put the default URI for what you need.
For example, for a default alarm sound you would put:
For a notification you would put:
Etc.
找到了一个解决方法,设置默认铃声。
对于同时使用
RingtonePreference
和PreferenceManager.setDefaultValues()
的人,RingtonePreference
上的android:defaultValue
需要在字符串中指向铃声的 URI。通过提供空字符串,您将默认首选项为“silence”,而其他字符串可能会导致没有有效的 URI。那么,解决方法是提供一个虚假字符串,例如
android:defaultValue="defaultRingtone"
:当调用
PreferenceManager.setDefaultValues()
时,获取首选项,并检查是否存储了伪造的字符串:Figured out a work-around, in setting the default ringtone.
For the people who uses both a
RingtonePreference
andPreferenceManager.setDefaultValues()
,android:defaultValue
on aRingtonePreference
takes in a string to a ringtone's URI. By providing an empty string, you're defaulting the preference to "silence," while other strings will probably lead to no valid URI.The work-around, then, is to provide a bogus string, such as
android:defaultValue="defaultRingtone"
:When calling
PreferenceManager.setDefaultValues()
, grab the preference, and check if the bogus string is being stored: