现在的位置: 首页 > 综合 > 正文

Android学习之SharedPreferences类

2013年12月10日 ⁄ 综合 ⁄ 共 2377字 ⁄ 字号 评论关闭
文章目录

   SharedPreferences类

   android.content.SharedPreferences

   类概括:

    访问和修改由函数getSharedPreferences(String,int)返回的首选项的接口。对于任何特定的首选项集合,所有客户端共享此类的单个实例。

     必须通过SharedPreferences.Editor对象修改属性的值,以确保属性值保持一致状态,当提交存储时,起到控制作用。从不同的get方法返回的对象必须视为不可变

   注意:此类不再支持多线程。

嵌套类
interface SharedPreferences.Editor 用于修改SharedPreferences对象的接口
interface SharedPreferences.OnSharedPreferenceChangeListener 此接口定义,当一个首选项属性发生改变,一个回调会被调用。
共有方法
abstract boolean contains(String
key)
核对是否属性集中包含属性。
abstract
SharedPreferences.Editor
edit()
为这些属性集创建一个新的Editor,通过这个Editor你可以把修改选项集中的数据,并且自动提交这些改变到SharedPreferences对象。
abstract
Map
<String, ?>
getAll()
检索所有属性集中的值
abstract boolean getBoolean(String
key, boolean defValue)
检索属性集中的布尔值。
abstract float getFloat(String
key, float defValue)
检索属性集中的float值。
abstract int getInt(String
key, int defValue)
检索属性集中的int值。
abstract long getLong(String
key, long defValue)
检索属性集中的long值。
abstract
String
getString(String
key,
String
defValue)
检索属性集中的string值。
abstract
Set
<String>
getStringSet(String
key,
Set
<String> defValues)
检索属性集中的string集合值。
abstract void registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener
listener)
注册一个当属性值改变时调用的回调函数。
abstract void unregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener
listener)
注销一个原先的回调函数。

使用共享的配置(Preferences)

 
SharedPreferences
类提供了一个通用的框架,用于保存和检索以持久化的键值对形式存储的原始数据类型。你可以使用SharedPreferences保存任意类型的原始数据:布尔(boolean),浮点(float),整型(int),长整型(long)和字符串(string)。这些数据将会存放在用户会话中(即使你的应用程序已经退出)。

为了获得SharedPreferences对象,可以使用下面的两种方法中的一种:

  1.  getSharedPreferences()方法,当需要多个由第一个参数指定名称属性文件;
  2. getPreferences()方法,如果Activity仅仅需要一个属性文件。因为可能Acitivity仅仅有一个属性文件,所以不需要名称区别。

写属性值:

  1.  调用 edit()
    ,取得SharedPreferences.Editor
  2. 使用例如 putBoolean()
    putString()方法添加值;
  3. 使用 commit() 函数提交新值。

读属性值,可以使用 SharedPreferences 类的方法,例如
getBoolean()
getString()

下面是一个使用无声的按键保存属性的例子:

public class Calc extends Activity {
    public static final String PREFS_NAME = "MyPrefsFile";

    @Override
    protected void onCreate(Bundle state){
       super.onCreate(state);
       . . .

       // Restore preferences
       SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
       boolean silent = settings.getBoolean("silentMode", false);
       setSilent(silent);
    }

    @Override
    protected void onStop(){
       super.onStop();

      // We need an Editor object to make preference changes.
      // All objects are from android.context.Context
      SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
      SharedPreferences.Editor editor = settings.edit();
      editor.putBoolean("silentMode", mSilentMode);

      // Commit the edits!
      editor.commit();
    }
}

抱歉!评论已关闭.