preferenceActivity和preferencescreen用法
1. 首先生成一個preferencescreen的xml文件..看代碼:- <?xml version="1.0" encoding="utf-8"?>
- <PreferenceScreen
- xmlns:andro>
- <CheckBoxPreference
- android:key="check1"
- android:title="音樂"
- android:summary="adas"
- />
- <CheckBoxPreference
- android:key="autoBack"
- android:title="自動回複"
- android:summaryOn="開啟"
- android:summaryOff="關閉"
- android:defaultValue="true"
- />
- <!-- 這裏是我自定義的Preference,詳細代碼請看下麵
- android:dialogLayout="@layout/setting_widthseekbar"
- 這個就是彈出窗口後要顯示的布局文件..這個大家想顯示成什麼樣子.自己設置了
- -->
- <preferenceScreen.hall.SeekBarPreference
- android:key="sss"
- android:title="111"
- android:dialogTitle="333"
- android:dialogLayout="@layout/setting_widthseekbar"
- android:persistent="true"/>
- <PreferenceCategory android:title="SMS 助手">
- <CheckBoxPreference
- android:key="smsSilence"
- android:title="靜音"
- android:summaryOn="開啟"
- android:summaryOff="關閉"
- android:defaultValue="false"
- />
- <PreferenceScreen android:title="更多選項">
- <CheckBoxPreference
- android:key="cb21"
- android:title="功能1"
- android:summaryOn="開啟"
- android:summaryOff="關閉"
- android:defaultValue="true"
- />
- <CheckBoxPreference
- android:key="cb22"
- android:title="功能2"
- android:summaryOn="使用"
- android:summaryOff="停用"
- android:defaultValue="true"
- />
- <ListPreference
- android:key="list1"
- android:title="android forum"
- android:summary="開發論壇"
- android:dialogTitle="請選擇論壇"
- android:entries="@array/entries"
- android:entryValues="@array/entryvalue"
- />
- <EditTextPreference
- android:key="et1"
- android:title="EditTextPreference Sample"
- android:summary="點擊輸入"
- android:dialogTitle="輸入設置"
- android:defaultValue="Hello EditTextPreference"
- />
- </PreferenceScreen>
- </PreferenceCategory>
- <PreferenceCategory android:title="其他選項">
- <RingtonePreference
- android:key="rt1"
- android:title="RingtonePreference Sample"
- android:summary="選擇鈴聲"
- />
- <Preference
- android:key="aa"
- android:title="測試"
- android:summary="測試中"
- />
- </PreferenceCategory>
-
- </PreferenceScreen>
- import android.app.Activity;
- import android.os.Bundle;
- import android.preference.CheckBoxPreference;
- import android.preference.Preference;
- import android.preference.Preference.OnPreferenceChangeListener;
- import android.preference.PreferenceActivity;
- public class preferenceScreen extends PreferenceActivity
- {
- private CheckBoxPreference chekcb=null;
- /** Called when the activity is first created. */
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.preference);
- chekcb=(CheckBoxPreference) findPreference("autoBack");//這裏就像findViewById一樣,不過這裏的id其實是key的值..
- //下麵設置監聽器
- chekcb.setOnPreferenceChangeListener(new myPreferencesChance());
- }
- class myPreferencesChance implements OnPreferenceChangeListener{
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- // TODO Auto-generated method stubd
- System.out.println("newValue"+newValue);
- return true;
- }
-
- }
- }
有時候因為需要我們需要自己定義個preference選項..係統自帶的那些就滿足不了我們了..下麵讓我們來看下如何自定義preference選項,其實很簡單..比如說你要定義一個對話框形式的preference..隻要繼承DialogPreference就可以了,然後在preferenceScreen裏麵引用,設置一下屬性就好了,xml設置,請看上麵的preferenceScreen.xml文件..下麵是代碼
- ackage preferenceScreen.hall;
- import android.content.Context;
- import android.preference.DialogPreference;
- import android.util.AttributeSet;
- import android.widget.SeekBar;
- import android.widget.SeekBar.OnSeekBarChangeListener;
- public class SeekBarPreference extends DialogPreference implements OnSeekBarChangeListener{
- public SeekBarPreference(Context context, AttributeSet attrs) {
- super(context, attrs);
- // TODO Auto-generated constructor stub
- }
- @Override
- public void onProgressChanged(SeekBar seekBar, int progress,
- boolean fromUser) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- // TODO Auto-generated method stub
- }
- }
最後更新:2017-04-02 06:51:53