码迷,mamicode.com
首页 > 移动开发 > 详细

让Android Preference Summary中实时显示内容变更

时间:2014-09-03 10:52:26      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   http   color   io   ar   文件   2014   

Android中提供的Preference可以保存用户的喜好设置。在启明星安卓版员工通讯录里,有一个地方保存用户输入的URL就是用的Preference。

但是Preference默认显示的是Summary的值。我们希望他们可以显示用户输入的只。

先看一下效果:

如果用户未输入,这Summary提示让用户输入

bubuko.com,布布扣

 

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

bubuko.com,布布扣

 

要实现上面的功能,

(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中实时显示内容变更

标签:android   style   blog   http   color   io   ar   文件   2014   

原文地址:http://www.cnblogs.com/mqingqing123/p/3952945.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!