zoukankan      html  css  js  c++  java
  • 使用Preference保存设置

    http://blog.csdn.net/barryhappy/article/details/7381544

    Android中有四种持久化数据的方法:SQLite数据库、文件存储、Preference、ContentProvider。

    四种方法各有专攻,而其中Preference是以类似Map的键值对形式存储的,最适合用来保存用户个人设置之类的信息。


    可以用一个xml文件来配置一个设置界面,然后用专门的PreferenceActivity将其显示。PreferenceActivity是专业的设置界面,只要给它指定一个配置好的xml,它就能自动根据操作更改程序Preference的相应值。

    比如在res目录下建立一个xml文件夹,然后新建一个seeting.xml文件,内容如下:

    1. <?xml version="1.0" encoding="utf-8"?>  
    2. <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >  
    3.   
    4.     <CheckBoxPreference  
    5.         android:defaultValue="false"  
    6.         android:key="boolean_value"  
    7.         android:summary="保存一个boolean值"  
    8.         android:title="Checkbox" />  
    9.   
    10.     <EditTextPreference  
    11.         android:defaultValue="defaultString"  
    12.         android:key="string_value"  
    13.         android:name="EditText"  
    14.         android:summary="保存一个字符串"  
    15.         android:title="Edit Text" />  
    16.   
    17. </PreferenceScreen>  

    checkBoxPreference对应一个boolean值,EditTextPreference对应一个String。 android:key是标识符,必须是唯一的。

    然后建立一个SettingActivity.java,内容如下:

    1. import android.com.ui.R;  
    2. import android.os.Bundle;  
    3. import android.preference.PreferenceActivity;  
    4.   
    5. public class SettingActivity extends PreferenceActivity{  
    6.     @Override  
    7.     public void onCreate(Bundle savedInstanceState) {  
    8.         super.onCreate(savedInstanceState);  
    9.         addPreferencesFromResource(R.xml.setting);  
    10.     }  
    11. }  

    代码addPreferencesFromResource(R.xml.setting);即给这个PreferenceActivity指定了一个xml,这样,当打开此界面时的效果图:


    每次更改界面的设置之后,程序会自动持久化保存新的值。

    而在程序的其他地方获取到设置的值也很简单,只需通过标识符,如获取上文中标识符为“boolean_value”和“string_value”的值, 只需

     

    1. boolean booleanValue = PreferenceManager.getDefaultSharedPreferences(  
    2.         this).getBoolean("boolean_value", false);  
    3. String stringValue = PreferenceManager.getDefaultSharedPreferences(this)  
    4.         .getString("string_value", "");  

    即可获得。

    PreferenceManager.getDefaultSharedPreferences(Context) 是一个静态方法,获取到一个全局的Preference对象,在程序中的任何地方都是唯一的,getBoolean和getString方法的第二个参数 是默认值,是在获取key失败时的默认返回值。


    ----------------------------------------------------------

    我写的一个demo,下载地址:http://download.csdn.net/detail/barryhappy/4161548

  • 相关阅读:
    python + selenium 环境搭建及问题
    SQL数据库各种查询建表插入集合-待续持续更新
    使chrome支持跨域访问
    PayPal 开发详解(七):运行REST API SAMPLE
    PayPal 开发详解(六):下载paypal立即付款SDK 并编译打包
    PayPal 开发详解(五):创建第一个应用,获取clientId和clientSecret
    PayPal 开发详解(四):买家付款
    PayPal 开发详解(三):在网站上创建【立即付款】按钮
    PayPal 开发详解(二):开启【自动返回】和【数据传输】
    PayPal 开发详解(一):注册PayPal帐号
  • 原文地址:https://www.cnblogs.com/misybing/p/5026305.html
Copyright © 2011-2022 走看看