使用Preference保存设置
2014-07-24 08:11
330 查看
转:http://blog.csdn.net/sukhoi27smk/article/details/36634413
Android中有四种持久化数据的方法:SQLite数据库、文件存储、Preference、ContentProvider。
四种方法各有专攻,而其中Preference是以类似Map的键值对形式存储的,最适合用来保存用户个人设置之类的信息。
可以用一个xml文件来配置一个设置界面,然后用专门的PreferenceActivity将其显示。PreferenceActivity是专业的设置界面,只要给它指定一个配置好的xml,它就能自动根据操作更改程序Preference的相应值。
比如在res目录下建立一个xml文件夹,然后新建一个seeting.xml文件,内容如下:
[html]
view plaincopyprint?
<?xml
version="1.0"
encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
>
<CheckBoxPreference
android:defaultValue="false"
android:key="boolean_value"
android:summary="保存一个boolean值"
android:title="Checkbox"
/>
<EditTextPreference
android:defaultValue="defaultString"
android:key="string_value"
android:name="EditText"
android:summary="保存一个字符串"
android:title="Edit Text"
/>
</PreferenceScreen>
checkBoxPreference对应一个boolean值,EditTextPreference对应一个String。
android:key是标识符,必须是唯一的。
然后建立一个SettingActivity.java,内容如下:
[java]
view plaincopyprint?
import android.com.ui.R;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class SettingActivity
extends PreferenceActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.setting);
}
}
代码addPreferencesFromResource(R.xml.setting);即给这个PreferenceActivity指定了一个xml,这样,当打开此界面时的效果图:
每次更改界面的设置之后,程序会自动持久化保存新的值。
而在程序的其他地方获取到设置的值也很简单,只需通过标识符,如获取上文中标识符为“boolean_value”和“string_value”的值, 只需
[java]
view plaincopyprint?
boolean booleanValue = PreferenceManager.getDefaultSharedPreferences(
this).getBoolean("boolean_value",
false);
String stringValue = PreferenceManager.getDefaultSharedPreferences(this)
.getString("string_value", "");
即可获得。
PreferenceManager.getDefaultSharedPreferences(Context)是一个静态方法,获取到一个全局的Preference对象,在程序中的任何地方都是唯一的,getBoolean和getString方法的第二个参数是默认值,是在获取key失败时的默认返回值。
Android中有四种持久化数据的方法:SQLite数据库、文件存储、Preference、ContentProvider。
四种方法各有专攻,而其中Preference是以类似Map的键值对形式存储的,最适合用来保存用户个人设置之类的信息。
可以用一个xml文件来配置一个设置界面,然后用专门的PreferenceActivity将其显示。PreferenceActivity是专业的设置界面,只要给它指定一个配置好的xml,它就能自动根据操作更改程序Preference的相应值。
比如在res目录下建立一个xml文件夹,然后新建一个seeting.xml文件,内容如下:
[html]
view plaincopyprint?
<?xml
version="1.0"
encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
>
<CheckBoxPreference
android:defaultValue="false"
android:key="boolean_value"
android:summary="保存一个boolean值"
android:title="Checkbox"
/>
<EditTextPreference
android:defaultValue="defaultString"
android:key="string_value"
android:name="EditText"
android:summary="保存一个字符串"
android:title="Edit Text"
/>
</PreferenceScreen>
checkBoxPreference对应一个boolean值,EditTextPreference对应一个String。
android:key是标识符,必须是唯一的。
然后建立一个SettingActivity.java,内容如下:
[java]
view plaincopyprint?
import android.com.ui.R;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class SettingActivity
extends PreferenceActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.setting);
}
}
代码addPreferencesFromResource(R.xml.setting);即给这个PreferenceActivity指定了一个xml,这样,当打开此界面时的效果图:
每次更改界面的设置之后,程序会自动持久化保存新的值。
而在程序的其他地方获取到设置的值也很简单,只需通过标识符,如获取上文中标识符为“boolean_value”和“string_value”的值, 只需
[java]
view plaincopyprint?
boolean booleanValue = PreferenceManager.getDefaultSharedPreferences(
this).getBoolean("boolean_value",
false);
String stringValue = PreferenceManager.getDefaultSharedPreferences(this)
.getString("string_value", "");
即可获得。
PreferenceManager.getDefaultSharedPreferences(Context)是一个静态方法,获取到一个全局的Preference对象,在程序中的任何地方都是唯一的,getBoolean和getString方法的第二个参数是默认值,是在获取key失败时的默认返回值。
相关文章推荐
- 我的Android笔记(十一)——使用Preference保存设置
- 使用Preference保存设置
- 使用Preference保存设置
- Android app系统设置界面 数据的保存与读取 SharedPreferences 的正确使用
- 我的Android笔记(十一)——使用Preference保存设置
- 我的Android笔记(十一)——使用Preference保存设置
- 使用Cookie对象保存用户自定义设置
- Java中Preference 类的使用,保存上一次记录
- <WP7>(六)手把手教你写天气预报程序:使用Isolatedstorage保存设置
- <WP7>(六)手把手教你写天气预报程序:使用Isolatedstorage保存设置
- Android下使用Properties文件保存程序设置
- Android的设置界面及Preference使用
- Android 使用 SharedPreferences 保存和加载软件参数
- Android的设置界面及Preference使用
- Android的设置界面及Preference使用
- eclipse保存个人设置preference
- [office 沙拉]使用“自定义功能区”设置,Word 2010中两步保存PDF
- 保存设置的PreferenceActivity
- [软件使用]TeamViewer不能保存设置
- Android之使用RatingBar设置游戏难度并保存