Android学习之SharedPreferences类

来源:互联网 发布:软件系统架构书籍 编辑:程序博客网 时间:2024/06/06 07:47

   SharedPreferences类

   android.content.SharedPreferences

   类概括:

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

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

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


嵌套类interfaceSharedPreferences.Editor用于修改SharedPreferences对象的接口interfaceSharedPreferences.OnSharedPreferenceChangeListener此接口定义,当一个首选项属性发生改变,一个回调会被调用。共有方法abstract booleancontains(String key)

核对是否属性集中包含属性。
abstract SharedPreferences.Editoredit()

为这些属性集创建一个新的Editor,通过这个Editor你可以把修改选项集中的数据,并且自动提交这些改变到SharedPreferences对象。
abstract Map<String, ?>getAll()
检索所有属性集中的值
abstract booleangetBoolean(String key, boolean defValue)
检索属性集中的布尔值。
abstract floatgetFloat(String key, float defValue)
检索属性集中的float值。
abstract intgetInt(String key, int defValue)
检索属性集中的int值。
abstract longgetLong(String key, long defValue)
检索属性集中的long值。
abstract StringgetString(String key, String defValue)
检索属性集中的string值。
abstract Set<String>getStringSet(String key, Set<String> defValues)
检索属性集中的string集合值。
abstract voidregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener)

注册一个当属性值改变时调用的回调函数。
abstract voidunregisterOnSharedPreferenceChangeListener(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();    }}


原创粉丝点击