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中实时显示内容变更的更多相关文章

  1. Markdown中实时显示数学公式的方法

    Markdown中实时显示数学公式的方法 Markdown非常好用,但是对于数学公式的实时显示有一些缺陷,如何解决这一问题呢? 一.在线LaTex编辑 点击在线LaTeX编辑方式 在对话框中输入数学公 ...

  2. 【转】shell脚本中echo显示内容带颜色

    shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e.格式如下:   echo -e "\033[41;36m something here \033[0m&qu ...

  3. shell脚本中echo显示内容带颜色

    转自:http://www.cnblogs.com/lr-ting/archive/2013/02/28/2936792.html shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要 ...

  4. 【转】shell脚本中echo显示内容带颜色的实现方法

    shell脚本中echo显示内容带颜色的实现方法 shell脚本里使用echo输出颜色  

  5. 实时显示内容(Thread+Handler)

    class LocThread extends Thread{ @Override public void run() { while (true){ try { Thread.sleep(99); ...

  6. Android 6.0 中TimePicker显示为滚动样式的方法

    在Android6.0中,TimePicker控件的默认样式为转盘的样式,就像这个样子: 如果想要显示为之前的滚动样式的话也很简单,只要在布局文件中设置TimePicker的timePickerMod ...

  7. 【转】WriteMessage的信息在AutoCAD中命令行中实时显示

    之前程序中有段发送信息到命令行上显示的代码,如下:     ed.WriteMessage("开始标注横断面高程,请稍候!");     但是发现命令行中并不马上显示,代码也明明运 ...

  8. 为什么我的Android SDK Manager中只显示已安装的package?

    如图.在菜单packages中,前两项我都是选了的 . 两种可能: 1. 明显是楼主连不上谷歌的更新服务器了,换成国内的吧,左上Tools-->Options弹出的界面有两个可以填写的 ,下面一 ...

  9. shell脚本中echo显示内容带颜色显示

    格式如下 : echo -e "\033[41;36m something here \033[0m" 其中41的位置代表底色, 36的位置是代表字的颜色 注: 1.字背景颜色和文 ...

随机推荐

  1. Java之路(四)数组初始化

    本文主要讲数组的初始化方法.可变参数列表以及可变参数列表对函数重载的影响. 1.数组初始化 定义数组的方式: int[] arr1; 或  int arr1[]; 数组初始化 通过上边的定义,我们只是 ...

  2. 访问url下载文件----python

    工作上有时候有需求,会下载pdf,doc,zip等文件,可以用以下方法,推荐使用第一种 下载文件: import urllib import urllib2 import requests url = ...

  3. Javascript中DOM详解与学习

    DOM(文档对象模型)是针对html和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次化的节点树,允许开发人员添加,移除和修改页面的某一部分.下面将从这几个层次来学习. 一.节点层次 ...

  4. Python 项目实践三(Web应用程序) 第三篇

    接着上节的继续学习,现在要显示所有主题的页面 有了高效的网页创建方法,就能专注于另外两个网页了:显示全部主题的网页以及显示特定主题中条目的网页.所有主题页面显示用户创建的所有主题,它是第一个需要使用数 ...

  5. Android-序列化-Serializable/Parcelable

    Android-序列化-Serializable/Parcelable 学习自 <Android开发艺术探索> 序列化漫谈 IPC的首要目的是传输数据,当然不能仅仅是传输一些基础数据了,毕 ...

  6. git 撤销本地修改

    git checkout file 例如:git checkout app/views/carts/_index_m.html.erb 可以先用 git status 查看差异 然后 git chec ...

  7. UVALive 6913 I Want That Cake 博弈dp

    I Want That Cake 题目连接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemi ...

  8. j.u.c系列(05)---之重入锁:ReentrantLock

    写在前面 ReentrantLock,可重入锁,是一种递归无阻塞的同步机制.它可以等同于synchronized的使用,但是ReentrantLock提供了比synchronized更强大.灵活的锁机 ...

  9. 使用 IntraWeb (10) - CSS

    IW 会把大多数的视觉属性转换为 CSS; 我们主动使用 CSS 要分两步: 第一步: {通过窗体的 StyleSheet 属性指定要链接的 CSS 文件} procedure TIWForm1.IW ...

  10. YAML文件中在单一文件中区分多个文件

    1.在单一文件中,可用连续三个连字号(---)区分多个文件. 2.另外,还有选择性的连续三个点号( ... )用来表示文件结尾. 题外:YAML其实语法很多也很灵活,但是针对Spring支持的语法其实 ...