Android的简单应用(一)——PreferenceFragment实现应用的设置
2014-11-08 11:27
501 查看
今天主要讲解怎么使用PreferenceFragment。PreferenceFragment它与默认的SharedPreferences文件相连接,不需要你再自己写代码去操作SharedPreferences。这个是它最大的用处。
一个PreferenceFragment。
一个settings.xml里面存放设置的变量。
注意:SharedPreferences一直在WeakHashMap保持监听。这意味着不能用匿名的内部类作为监听器,因为一旦你离开当前的范围它将变成回收的目标。它将首先工作,但是最终,仍然要被回收,被从WeakHashMap移除然后停止工作。在你的类中的一个位置引用一个监听器,这样就好了,提供你的类的实例也不会被销毁。
PreferenceFragment代码如下:
settings.xml文件
其中android:key,对应着SharedPreferences的key。
arrays.xml中的值:
一、类
一个主Activity,用来存放fragment.一个PreferenceFragment。
一个settings.xml里面存放设置的变量。
二、具体代码
activity的代码如下:public class MainActivity extends Activity{ private SharedPreferences sp; private OnSharedPreferenceChangeListener listener; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); getFragmentManager().beginTransaction().replace(android.R.id.content, new ConfigFragment()).commit();//配置Fragment。 sp = PreferenceManager.getDefaultSharedPreferences(this);//获取配置文件,方便我们查看数值的变化 Log.d("CPACM",sp.getBoolean("autoBack", false)+ sp.getString("et1", "cpacm")); listener = new OnSharedPreferenceChangeListener(){//SharedPreferences的变化监听器 @Override public void onSharedPreferenceChanged( SharedPreferences sharedPreferences, String key) { Log.d("CPACM","change"); // TODO Auto-generated method stub Toast.makeText(MainActivity.this, key, Toast.LENGTH_LONG).show();//当SharedPreferences中的数值变化时,显示一个toast. } }; sp.registerOnSharedPreferenceChangeListener(listener); } }
注意:SharedPreferences一直在WeakHashMap保持监听。这意味着不能用匿名的内部类作为监听器,因为一旦你离开当前的范围它将变成回收的目标。它将首先工作,但是最终,仍然要被回收,被从WeakHashMap移除然后停止工作。在你的类中的一个位置引用一个监听器,这样就好了,提供你的类的实例也不会被销毁。
PreferenceFragment代码如下:
public class ConfigFragment extends PreferenceFragment{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.settings);//传入配置文件,里面存放可设置的变量 } }
settings.xml文件
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > <CheckBoxPreference android:defaultValue="true" android:key="autoBack" android:summaryOff="关闭" android:summaryOn="开启" android:title="自动回复" /> <PreferenceCategory android:title="SMS 助手" > <CheckBoxPreference android:defaultValue="false" android:key="smsSilence" android:summaryOff="关闭" android:summaryOn="开启" android:title="静音" /> <PreferenceScreen android:title="更多选项" > <CheckBoxPreference android:defaultValue="true" android:key="cb21" android:summaryOff="关闭" android:summaryOn="开启" android:title="功能1" /> <CheckBoxPreference android:defaultValue="true" android:key="cb22" android:summaryOff="停用" android:summaryOn="使用" android:title="功能2" /> <ListPreference android:dialogTitle="请选择论坛" android:entries="@array/entries_list_preference" android:entryValues="@array/entriesvalue_list_preference" android:key="list1" android:summary="开发论坛" android:title="android forum" /> <EditTextPreference android:defaultValue="Hello EditTextPreference" android:dialogTitle="输入设置" android:key="et1" android:summary="点击输入" android:title="EditTextPreference Sample" /> </PreferenceScreen> </PreferenceCategory> <PreferenceCategory android:title="其他选项" > <RingtonePreference android:key="rt1" android:summary="选择铃声" android:title="RingtonePreference Sample" /> </PreferenceCategory> </PreferenceScreen>
其中android:key,对应着SharedPreferences的key。
arrays.xml中的值:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="entries_list_preference"> <item>www.anddev.org</item> <item>www.eoeandroid.com</item> <item>developer.android.com</item> </string-array> <string-array name="entriesvalue_list_preference"> <item>1</item> <item>2</item> <item>3</item> </string-array> </resources>
相关文章推荐
- [Android学UI之一]简单实现移动应用左右滑动导航页面
- Android 实现简单天气应用
- Android简单的可设置间隔评分条的实现
- Android为应用添加数字角标的简单实现
- Android应用设置无标题栏的实现方式
- Android 应用语言设置的实现
- Android初学习 - 实现“重置应用偏好设置”的功能
- 基于Socket的Android与PC简单聊天应用的实现
- android 里面对图片的不同压缩处理 以及简单拍照功能实现加设置闪光灯效果
- Android表格布局TableLayout简单实现(Java动态添加,设置边框,删除数据(单行,多行))
- Android SharedPreferences应用 实现本地注册登陆 功能简单易懂(实例)
- android 浮层简单实现、activity设置Theme
- Android应用学习(一)实现activity自动跳转和简单的登录
- 简单的android系统设置界面实现
- Android广播事件机制及应用(实现简单的定时提醒功能)
- Android简单语音控制应用的实现
- Android控制自身应用设置实现多语言
- android ContentProvider简单实现不同应用间的数据共享
- Android 应用载入界面的简单实现
- RxAndroid的简单应用——实现网络图片的下载