23 April 2014

IMG-THUMBNAIL

android.content.SharedPreferences配置内容可以在Activity、Service、Broadcast和Content Provider中使用。在程序运行时动态获取配置信息,可以通过android.preference.PreferenceManager.getDefaultSharedPreferences()获取实例。

##1. 读取配置信息

SharedPreferences 提供如下方法直接获取配置的信息。

  #   方法  
  1   getString  
  2   getBoolean  
  3   getInt  
  4   getLong  
  5   getFloat  

##2. 修改配置信息

修改配置需要用到android.content.SharedPerferences.Editor。Editor提供了如下方法修改首选项内容。获取Editor通过SharedPerferences.editor()获得。

  #   方法  
  1   putString  
  2   putBoolean  
  3   putInt  
  4   putLong  
  5   putFloat  
Editor edit = settings.edit();
edit.putBoolean(PREF_MESSAGE, true);
edit.commit();

##3. PreferenceActivity

使用PreferenceActivity,通过addPreferencesFromResource以界面的形式展示,并且可以在此界面中对配置的值进行修改。展示的布局将会按照首选项的配置文件自动生成。每一项都是由指定的android:title和该项的值组成。

用户更新了设置之后,还要将最新用户设置的内容展现出来,能够让用户判断是否选择正确。

getPreferenceScreen().findPreference(PREF_ROLE).setSummary(role);

##4. 首选项内容

单选提供了android.preference.ListPreference,它类似于HTML的下拉列表,可以为其提供选项值和选项标签。

<string-array name="role">
    <item>指挥</item>
    <item>协调</item>
    <item>默认</item>
</string-array>
<string-array name="role_values">
    <item>commander</item>
    <item>coordinator</item>
    <item>default</item>
</string-array>

<ListPreference
    android:defaultValue="默认"
    android:entries="@array/role"
    android:entryValues="@array/role"
    android:key="role"
    android:title="@string/settings_current_role" />

##5. 监听配置信息的修改

设置监听需要实现android.content.OnSharedPreferenceChangeListener接口,通过settings.registerOnSharedPreferenceChangeListener(this);进行注册监听。事件处理在onSharedPreferenceChanged

  • registerOnSharedPreferenceChangeListener
  • unregisterOnSharedPreferenceChangeListener

参考文献

原文链接:Android 配置,转载请注明来源!

EOF