PreferenceActivity 设置界面

来源:互联网 发布:ember.js中文官网 编辑:程序博客网 时间:2024/05/16 14:01

这里写图片描述

配置 /values/xml/preference.xml 布局文件

<?xml version="1.0" encoding="utf-8"?><PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"    >    <PreferenceCategory android:title="First    Category">        <ListPreference            android:defaultValue="list key default value"            android:dialogTitle="list_dialog_title"            android:entries="@array/list_preference"            android:entryValues="@array/list_preference"            android:key="list_key"            android:summary="list_summary"            android:title="list title" />    </PreferenceCategory>    <PreferenceCategory android:title="Second Category">        <EditTextPreference            android:defaultValue="edit default value"            android:key="edittext_key"            android:summary="edit summary"            android:title="edit title" />        <CheckBoxPreference            android:defaultValue="checkbox default value"            android:key="checkbox_key"            android:summary="checkbox summary"            android:title="checkbox title" />        <EditTextPreference            android:defaultValue="0"            android:key="num_key"            android:numeric="integer"            android:summary="edit summary"            android:title="input number" />    </PreferenceCategory></PreferenceScreen>

PreferenceActivity 配置

public class SettingActivity extends PreferenceActivity{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        addPreferencesFromResource(R.xml.preferenc);        initPreferences();    }    EditTextPreference mEtPreference;    ListPreference mListPreference;    CheckBoxPreference mCheckPreference;    EditTextPreference mNumberPre;    private void initPreferences() {        mEtPreference = (EditTextPreference) findPreference(Consts.EDIT_KEY);        mListPreference = (ListPreference) findPreference(Consts.LIST_KEY);        mCheckPreference = (CheckBoxPreference) findPreference(Consts.CHECKOUT_KEY);        mNumberPre = (EditTextPreference) findPreference(Consts.NUM_KEY);    } }

添加状态数据保存,绑定数据变换监听事件

public class SettingActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener {    @Override    protected void onResume() {        super.onResume();        // Setup the initial values        SharedPreferences sharedPreferences = getPreferenceScreen().getSharedPreferences();        mListPreference.setSummary(sharedPreferences.getString(Consts.LIST_KEY, ""));        mEtPreference.setSummary(sharedPreferences.getString(Consts.EDIT_KEY, "linc"));        mNumberPre.setSummary(sharedPreferences.getString(Consts.NUM_KEY, "0"));        // Set up a listener whenever a key changes        sharedPreferences.registerOnSharedPreferenceChangeListener(this);    }    @Override    protected void onPause() {        super.onPause();        getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);    }    @Override    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {        if (key.equals(Consts.EDIT_KEY)) {            mEtPreference.setSummary(                    sharedPreferences.getString(key, "20"));        } else if (key.equals(Consts.LIST_KEY)) {            mListPreference.setSummary(sharedPreferences.getString(key, ""));        } else if (key.equals(Consts.NUM_KEY)) {            mNumberPre.setSummary(sharedPreferences.getString(key, "0"));        }    }}
0 0
原创粉丝点击