android 用RingtonePreference显示副标题 summary的注意事项
来源:互联网 发布:编程小白学python pdf 编辑:程序博客网 时间:2024/05/10 19:16
在用RingtonePreference显示副标题 summary,如果不实时更新副标题,即不实现OnPreferenceChangeListener接口时,系统会自动保存你所选择的提示音。如果需要实时更新副标题,必须实现OnPreferenceChangeListener接口,但在接口里需要手动保存所选的铃声,少说费话,代码如下,注意红色代码:
SettingsRing .java
import android.app.ActionBar;import android.app.Activity;import android.content.SharedPreferences;import android.media.Ringtone;import android.media.RingtoneManager;import android.net.Uri;import android.os.Bundle;import android.preference.Preference;import android.preference.PreferenceFragment;import android.preference.RingtonePreference;import android.preference.Preference.OnPreferenceChangeListener;import android.view.View;import android.view.View.OnClickListener;public class SettingsRing extends Activity { // private ListView mListView = null; // private ArrayAdapter<String> mAdapter; // private boolean mCheckedItem[]; // private SystemConfig mConfig; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); getFragmentManager().beginTransaction() .replace(android.R.id.content, new PrefsFragement()).commit(); //显示PreferenceFragment界面 } public static class PrefsFragement extends PreferenceFragment implements OnPreferenceChangeListener { private static final String KEY_RING_TONE = "ringtone"; private RingtonePreference mRingTone; @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preference); mRingTone = (RingtonePreference) findPreference(KEY_RING_TONE); Uri uri = Uri.parse(mRingTone.getSharedPreferences().getString( KEY_RING_TONE, "")); mRingTone.setSummary(getRingtonName(uri)); mRingTone.setOnPreferenceChangeListener(this); } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { // TODO Auto-generated method stub if (preference == mRingTone) { preference.setSummary(getRingtonName(Uri.parse(newValue.toString()))); // 此处必须加上,否则不会保存 SharedPreferences sp = preference.getPreferenceManager().getSharedPreferences(); sp.edit().putString(preference.getKey(), newValue.toString()).commit(); } return false; } // 获取提示音名称 public String getRingtonName(Uri uri) { Ringtone r = RingtoneManager.getRingtone(getActivity(), uri); return r.getTitle(getActivity()); } }
preference.xml
<?xml version="1.0" encoding="utf-8"?><PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <PreferenceCategory android:title="设置提示音" > <RingtonePreference android:key="ringtone" android:showDefault="true" android:showSilent="true" android:title="提示音" /> </PreferenceCategory></PreferenceScreen>
0 0
- android 用RingtonePreference显示副标题 summary的注意事项
- Android RingtonePreference 显示副标题 summary
- tableview 显示主副标题的样式
- android 首选项 RingtonePreference
- android 首选项 RingtonePreference
- android 首选项 RingtonePreference
- RingtonePreference
- PreferenceGroup中RingtonePreference的用法
- Android 显示图片缩放的注意事项
- 征集咱们BLOG的副标题!
- 获取tableViewcell副标题的方法
- uibuuton 折行显示 主标题,副标题
- android之首选项相关 Preferences(三)EditTextPreference/RingtonePreference
- Android Preference Summary中实时显示内容变更
- 让Android Preference Summary中实时显示内容变更
- 2.Supervisord进程管理工具的安装使用 (副标题:用supervisord管理Tornado进程)
- RingtonePreference组件
- rpy2 图形,summary 显示
- 二叉树先序遍历非递归方法的两种实现
- 最大二分匹配问题
- 知识分类
- (转载)Android学习之旅- BroadCastReceiver
- [leetcode]Remove Element
- android 用RingtonePreference显示副标题 summary的注意事项
- fastjson
- 马士兵 Servlet_JSP(3) Servlet和JSP的通信(源代码)
- ipbegin10.128.160.168ipend
- [LeetCode]32.Longest Valid Parentheses
- css的选择器.(重点)
- 2015.04.23(Objective _c---NSArray和NSMutableArray)
- ipbegin10.128.160.168ipend
- python IDLE 快捷键