`
897371388
  • 浏览: 529450 次
文章分类
社区版块
存档分类
最新评论

Android RingtonePreference 显示副标题 summary

 
阅读更多

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

在软件的设置界面总是免不了要设置一些接受信息的铃声,这个时候就用到了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!

分享到:
评论

相关推荐

    android preference framework demo

    此DEMO内含基本的android preference framework的简单介绍,包括CheckboxPreference, RingtonePreference, EditTextPreference以及ListPreference。主要探究了一下android 怎么通过使用preference从而达到对用户定制...

    精通ANDROID 3(中文版)1/2

    9.1.4 RingtonePreference  9.2 组织首选项  9.3 以编程方式操作首选项  9.4 使用首选项保存状态  9.5 参考资料  9.6 小结  第10章 探索安全性和权限  10.1 理解Android安全性模型  10.1.1 安全性...

    Android Preference组件使用

    Android提供preference这个键值对的方式来处理这种情况,自动保存这些数据,并立时生效,同时Android提供一种类似的layout的方式来进行Preference的布局。 Preference组件有ListPreference,EditTextPreference,...

    精通Android 3 (中文版)2/2

    9.1.4 RingtonePreference  9.2 组织首选项  9.3 以编程方式操作首选项  9.4 使用首选项保存状态  9.5 参考资料  9.6 小结  第10章 探索安全性和权限  10.1 理解Android安全性模型  10.1.1 安全性...

    Android-Support-Preference-V7-Fix:Android androidx.preference支持库存在一些问题,此lib试图修复它们

    另外,还有可用,例如RingtonePreference , DatePickerPreference和TimePickerPreference 。捐款如果您想支持我,您可以通过PayPal捐款少量。如何使用图书馆?1.添加gradle依赖将此添加到您的gradle文件中: ...

    RingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreference

    RingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreferenceRingtonePreference

    Android学习笔记之Shared Preference

    需要向里面添加首选项控件,原生的这些控件有:CheckBoxPreference、EditTextPreference、ListPreference、MultiSelectListPreference和RingtonePreference,每种控件至少包含4种属性:android:key,android:title,...

Global site tag (gtag.js) - Google Analytics