让Android Preference Summary中实时显示内容变更
Android中提供的Preference可以保存用户的喜好设置。在启明星安卓版员工通讯录里,有一个地方保存用户输入的URL就是用的Preference。
但是Preference默认显示的是Summary的值。我们希望他们可以显示用户输入的只。
先看一下效果:
如果用户未输入,这Summary提示让用户输入

如果用户输入了,这显示用户的输入值

要实现上面的功能,
(1)增加XML配置文件
<EditTextPreference
android:key="url"
android:title="please enter url" >
</EditTextPreference>
(2)执行OnSharedPreferenceChangeListener 接口
public class SettingsFragment extends PreferenceFragment   implements OnSharedPreferenceChangeListener {
    private EditTextPreference url;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.c21preference);
        url = (EditTextPreference)getPreferenceScreen().findPreference("url"); 
    }
    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
        /* get preference */
           if(key.equals("url"))
           {
               InitTextSummary();
           }
    }
    public void InitTextSummary()
    {
        if(url.getText().equals(""))
        {
             url.setSummary("请输入接口地址,例如 http://demo.dotnetcms.org/worklog/");
        }
        else
        {
             url.setSummary(url.getText());
        }
    }
     @Override
        public void onResume() {
            super.onResume(); 
            InitTextSummary();
            getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
        }
        @Override
        public void onPause() {
            getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
            super.onPause();
        }
    
如此即可。
(3)获取用户的配置值
 public void Read(View view){
        // SharedPreferences settings = getSharedPreferences("c21preference", MODE_PRIVATE);
        // String txt=settings.getString("ringtone", "xxx");
        // Toast.makeText(getApplicationContext(),txt, Toast.LENGTH_SHORT).show();
          SharedPreferences settings=PreferenceManager.getDefaultSharedPreferences(this);
         String txt=settings.getString("url", "xxx");
              Toast.makeText(getApplicationContext(),txt, Toast.LENGTH_SHORT).show();
            }   
让Android Preference Summary中实时显示内容变更的更多相关文章
- Markdown中实时显示数学公式的方法
		
Markdown中实时显示数学公式的方法 Markdown非常好用,但是对于数学公式的实时显示有一些缺陷,如何解决这一问题呢? 一.在线LaTex编辑 点击在线LaTeX编辑方式 在对话框中输入数学公 ...
 - 【转】shell脚本中echo显示内容带颜色
		
shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e.格式如下: echo -e "\033[41;36m something here \033[0m&qu ...
 - shell脚本中echo显示内容带颜色
		
转自:http://www.cnblogs.com/lr-ting/archive/2013/02/28/2936792.html shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要 ...
 - 【转】shell脚本中echo显示内容带颜色的实现方法
		
shell脚本中echo显示内容带颜色的实现方法 shell脚本里使用echo输出颜色
 - 实时显示内容(Thread+Handler)
		
class LocThread extends Thread{ @Override public void run() { while (true){ try { Thread.sleep(99); ...
 - Android 6.0 中TimePicker显示为滚动样式的方法
		
在Android6.0中,TimePicker控件的默认样式为转盘的样式,就像这个样子: 如果想要显示为之前的滚动样式的话也很简单,只要在布局文件中设置TimePicker的timePickerMod ...
 - 【转】WriteMessage的信息在AutoCAD中命令行中实时显示
		
之前程序中有段发送信息到命令行上显示的代码,如下: ed.WriteMessage("开始标注横断面高程,请稍候!"); 但是发现命令行中并不马上显示,代码也明明运 ...
 - 为什么我的Android SDK Manager中只显示已安装的package?
		
如图.在菜单packages中,前两项我都是选了的 . 两种可能: 1. 明显是楼主连不上谷歌的更新服务器了,换成国内的吧,左上Tools-->Options弹出的界面有两个可以填写的 ,下面一 ...
 - shell脚本中echo显示内容带颜色显示
		
格式如下 : echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色, 36的位置是代表字的颜色 注: 1.字背景颜色和文 ...
 
随机推荐
- js 高阶函数(map/reduce/filter/sort)
			
1.map - 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值(注:map不会对空数组进行检测,不会改变原始数组) 语法:array.map(function(currentValu ...
 - Web开发模式演变(转)
			
add by zhj:目前用的最多应该是模式二,其次是三.四,而模式五比较新,我自己也不太懂. 模式二--前后台交互的方式为整个页面,即每次请求,服务器都将HTML模板渲染后发给客户端,每次请求都返回 ...
 - JAVA 图形开发中组件对齐方法及界面开发
			
/*文章中用到的代码只是一部分,需要源码的可通过邮箱联系我 1978702969@qq.com*/ 在上篇博客中提到了JAVA图形界面开发时的两种布局,流式布局和边框布局. 在实际使用中可能会发现,往 ...
 - MySQL CPU %sys 高的案例分析(三)
			
[现象] 最近有台服务器晚上CPU告警,系统抓取的故障期间的snapshot显示CPU %sys较高,同时context switch在300K以上. 是否过高的context switch引起的%s ...
 - 怎样c# java md5值保持一致
			
c#方式 /// <summary> /// 获得字符串md5. /// </summary> /// <param name="myString"& ...
 - 【WIN10】WIN2D——基本圖形的繪製
			
DEMO下載地址:http://yunpan.cn/c3iNuHFFAcr8h (提取码:8e48) 先看一個截圖: 繪製了一些基本形狀. DEMO的繪製代碼都非常簡單,不想在博客裡細說了,看代碼更為 ...
 - 接口开发-集成接口文档(swagger)
			
在正式进入主题之前,先说说实际工作中遇到的问题.不算是传统的原生APP开发,还是眼下的H5混合开发,只要是需要前后端通过接口配合的,往往都存在几个普遍的问题 (1)接口文档谁来写,尤其是跨部门,并且, ...
 - 华为交换机VRRP配置实例收集(转)
			
示例图: 其实说白了就是做线路冗余,达到热备切换. 组网需求: 楼层1和楼层2分别通过两条线路做冗余接入交换机(本示例只考虑vrrp,暂不考虑其他方面).当其中一段链路故障时,能通过另外一条链路传输. ...
 - Mac 10.12彻底关闭Dashboard
			
1.打开[系统偏好设置]. 2.点击进入[Mission Control]. 3.中间有一项[Dashboard],点击它右边的下拉菜单,选择[关闭],即可.
 - HTML5中的跨文档消息传递
			
跨文档消息传送(cross-document messaging),有时候也简称为XDM,指的是来自不同域的页面间传递消息.例如,www.w3cmm.com域中的一个页面与一个位于内嵌框架中的p2p. ...