懒人也是有代价的,前一节虽然简单,但是没有实现一个功能,就是对于 EditText 一类的,设置了文本之后,并没有直接显示在界面上,必须要点一下才知道是什么值。这个在本连载第一节也提到过。
现在的样子:
期望的样子:
我们就要写一个类来处理
然后在调用时,也不能用 addPreferencesFromResource 这个简单方法了,得这么用:
用这种方法加载配置界面,不需要改基类为 PreferenceActivity。
其实,原理和那个 Settings Activity 模板中的是一样的,只不过那里面更复杂。比如,这里我们就只研究了对 EditTextPreference 设置 Summary,它研究了对其他类型的设置方式,并且作了封装。
再优化一下,我们发现点击安卓的返回按钮时,设置界面变为空白,再点击一下返回按钮,才是返回之前的页面。
我们通过拦截 onKeyDown 来处理。
关于 onKeyDown 的详细应用,可参见:Android 拦截 onKeyDown,并实现“再按一次退出”