首选项活动
为了引入这个概率,先从需求开始吧。 现有的Activity专门用于手机属性设置,该怎么办?
根据您的经验,活动首选项组合用于接口构建,后者用于设置数据存储实际上是正确的,但需要创建与每个配置选项对应的首选项,因此很复杂
所以现在有更好的选择。 那是本论文的主角。 首选项活动
从名称可以看出,它实际上是活动和性能的混合物
还是从需求出发,常见的属性设置有哪些方法?
1. CheckBox用于确定/取消某些功能。 例如,是否禁用对应于checkbox首选项具有自动绑定到首选项的选项
2. ListView用于列出所有选择。 例如,选择铃声列出所有声音对应于选择。 列表首选项
3 .组合属性,列举一系列相关属性。 例如,与短消息相关的所有功能都与首选项无关,因为它们只用于首选项屏幕或接口
接口其实正在讨论这个比较。 大家自己执行的话会一目了然,所以我觉得还是以步骤为中心
首选项活动经常使用网络,为了防止备份自己,我们稍后再大致介绍一下
代码步骤
1 .首选项活动接口特别位于res/xml/setting.xml
? XML版本=’ 1.0 ‘编码=’ utf-8 ‘? preferencescreenxmlns 3360 Android=’ http://schemas.Android.com/apk/RES/安卓’ checkboxpreferenceandroid 3360 key=’ auto back ‘ Android 3360 title=’自动回复’安卓3360 summary on=’ on ‘ Android 33333333 preferencecategoryandroid : title=’ SMS助手’ checkboxpreferenceandroid 3360 key=’ SMS silence ‘ Android 3360 title=’缪尔maryOff=’关闭’ Android :默认值=’ false ‘/preferencescreenandroid 3360 title=’更多选择’ checkboxpreferenceandroid 3360 key=’ cb21 ‘ Android 3360 title=’功能1 ‘ Android tvalue=’ true ‘/checkboxpreferenceandroid 3360 key=’ cb22 ‘ Android : title=’功能2′ android:summaryOn=’使用’ listpreferenceandroid : key=’ list1′ Android3360 title=’ Android forum ‘ Android : summary=’开发论坛’ Android 3360
tle=”请选择论坛” android:entries=”@array/entries_list_preference” android:entryValues=”@array/entriesvalue_list_preference” /> <EditTextPreference android:key=”et1″ android:title=”EditTextPreference Sample” android:summary=”点击输入” android:dialogTitle=”输入设置” android:defaultValue=”Hello EditTextPreference” /> </PreferenceScreen> </PreferenceCategory> <PreferenceCategory android:title=”其他选项”> <RingtonePreference android:key=”rt1″ android:title=”RingtonePreference Sample” android:summary=”选择铃声” /> </PreferenceCategory></PreferenceScreen>
2. 导入setting.xml
addPreferencesFromResource(R.xml.settings);
emulator 运行截图:
点开”更多选项”
具体 请大家自己尝试之
3. 其实 关于PreferenceActivity 问题 基本结束了 但是 初次使用 会碰到一些坎坷 现一一讨论
4. 监听设定变化问题 普通布局里的监听 比较简单 先通过findViewById()获得目标View 再在其上注册监听器即可
但是 PreferenceActivity 并没有提供findViewById() 也就无法监听 那么 怎么做呢?
– 得到SharedPreferences 句柄
sp = PreferenceManager.getDefaultSharedPreferences(this);
– 在 sp 之上注册改变监听器
sp.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener(){@Override//sharedPreferences:句柄//key: 改变 键值public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {// TODO Auto-generated method stub if(key.equals(“autoBack”)){ Boolean autoBack = sharedPreferences.getBoolean(“autoBack”, false); if(autoBack){ Log.d(“TAG”,”autoBack: true!”); } else { Log.d(“TAG”,”autoBack: false!”); } }} });
5. Preference 异地使用 即:PreferenceActivity 在一个应用程序 而别处应用程序可能也想改变该数据 怎么做呢?
– 通过getSharedPreferences() 得到SharedPreferences实例
spc = this.getSharedPreferences(“com.android.PreferenceActivity.Usage_preferences.xml”, MODE_WORLD_READABLE );
– 取值
Boolean autoBack = spc.getBoolean(“autoBack”, false);
– 赋值
public void putValue(String key, Boolean value){ spe = spc.edit(); spe.putBoolean(key, value); spe.commit();}
就这样结束 似乎感觉不爽 所以决定加点料
– ListPreference 使用
<ListPreference android:key=”list1″ android:title=”android forum” android:summary=”开发论坛” android:dialogTitle=”请选择论坛” android:entries=”@array/entries_list_preference” android:entryValues=”@array/entriesvalue_list_preference” />
– EditTextPreference 使用
<EditTextPreference android:key=”et1″ android:title=”EditTextPreference Sample” android:summary=”点击输入” android:dialogTitle=”输入设置” android:defaultValue=”Hello EditTextPreference” />