Android RingtonePreference 显示副标题 summary

本文介绍如何在Android应用中高效地管理铃声设置,包括使用RingtonePreference进行铃声选择、监听更改并更新数据库的方法,以及实现getRingtonName()方法获取铃声名称的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有些小的技巧总是需要花时间去寻找,为了帮助大家节省寻找的时间,也帮自己做一个记忆,总结如下:

在软件的设置界面总是免不了要设置一些接受信息的铃声,这个时候就用到了RingtonePreference ,首先在onCreate()里面,输入如下代码:

mAccountRingtone.setSummary(getRingtonName(mAccount.getRingtone())); mAccountRingtone.setOnPreferenceChangeListener(new Reference.OnPreferenceChangeListener() { public boolean onPreferenceChange(Preference preference,Object newValue) { mAccountRingtone.setSummary(getRingtonName(newValue.toString())); SharedPreferences sp=mAccountRingtone.getPreferenceManager().getSharedPreferences(); sp.edit().putString(PREFERENCE_RINGTONE, newValue.toString()).commit(); return false; } });
上面这段代码是说在监听到改变的时候,先把newValue显示到RingtonePreference 上面,然后保存到SharedPreferences里面,可能在有些地方还需要存到数据库里面,那大家就要问了,getRingtonName()这个方法是做什么的呢?其实newValue是一个Uri并不是铃声的名字,那么我们就需要通过这个Uri去查找数据库,来得到铃声的名字,下面是这个方法的实现:

public static final String DEFAULT="default"; public String getRingtonName(String uri) { if(uri.equals("")); { return ""; } else { try { Uri mUri = Uri.parse(uri); Cursor c = getContentResolver().query(mUri, new String[]{MediaStore.Audio.Media.TITLE}, null, null, null); try { if(c.moveToFirst()) { return c.getString(0); } else { return DEFAULT; } } finally { c.close(); } } catch(Exception e) { return DEFAULT; } } }
ok!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值