zoukankan      html  css  js  c++  java
  • 让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();
                }   
  • 相关阅读:
    Mac Pro 安装 Sublime Text 2.0.2,个性化设置,主题 和 插件 收藏
    Mac Pro 编译安装 Nginx 1.8.1
    Mac Pro 解压安装MySQL二进制分发版 mysql-5.6.30-osx10.11-x86_64.tar.gz(不是dmg的)
    Mac Pro 修改主机名
    Mac Pro 软件安装/个性化配置 汇总
    Mac Pro 安装 Homebrew 软件包管理工具
    Mac Pro 使用 ll、la、l等ls的别名命令
    Mac Pro 入门、遇到的问题、个性化设置 汇总
    Linux/UNIX线程(2)
    工作流引擎activiti入门
  • 原文地址:https://www.cnblogs.com/mqingqing123/p/3952945.html
Copyright © 2011-2022 走看看