读书人

SharedPreference与PreferenceActivit

发布时间: 2012-09-25 09:55:58 作者: rapoo

SharedPreference与PreferenceActivity使用

SharedPreference:

创建:

SharedPreferences settings = this.getSharedPreferences("TestXML", 0);

这四种模式前面介绍使用文件方式保存数据时已经讲解过。如果希望SharedPreferences背后使用的xml文件能被其他应用读和写,可以指定定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。

Context.MODE_PRIVATE ?MODE_MULTI_PROCESS

写:

?

? ? ? ?以键值<String Key,String Value> 方式加入数据
? ? ? ?SharedPreferences.Editor localEditor = settings.edit();?
? ? ? ?localEditor.putBoolean("ShowNote", false);
? ? ? ?IocalEditor.commit();

?

读:

?String str = settings.getString("ShowNote", "");

?

?

PreferenceActivity:

1.在设置界面中所有的内容会自动读和写,当PreferenceActivity上的View有所更改时,系统会自动将对应的值更新到XML配置文件中,该文件可以在android 的 file explorer 中的 data/data/"yourPageName"/shared_prefs/"yourpageName"_prefenrences.xml中找到。“yourpageName”表示你项目所在的包。

?

2.如果要其他地方读配置PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext())取得一个SharedPreference。

?

?

3.还有一个重要的问题,就是如何响应PreferenceActivity的操作。其实只要重写PreferenceActivity的 ?onPreferenceTreeClick的方法就可以了,通过参数preference来判断是对那一个元素

进行的,并根据需要进行操作。?

@Override?

public boolean onPreferenceTreeClick(PreferenceScreen?

preferenceScreen,?

? ? Preference preference) {?

? return false;?

}

?

也可每个看成是普通的控件然后加监听。

?

?

?

?

getPreferences():?另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。
getSharedPreferences():获取到作用域是本应用程序的preference
getDefaultSharedPreferences():获取到全局作用域的preference通

?

Context.getSharedPreferences()方法来读写数值,这个方法通过设置name来使得同一个程序内的其它模块共享数据。如果不需要与其它模块共享数据,可以使用Activity.getPreferences()方法保持数据私有

?

读书人网 >移动开发

热点推荐