1. 首先生成一個preferencescreen的xml檔案..看代碼:
<?xml version="1.0" encoding="utf-8"?>
<preferencescreen
xmlns:android="http://schemas.android.com/apk/res/android">
<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 助手">
android:key="smssilence"
android:title="靜音"
android:defaultvalue="false"
/>
<preferencescreen android:title="更多選項">
android:key="cb21"
android:title="功能1"
android:key="cb22"
android:title="功能2"
android:summaryon="使用"
android:summaryoff="停用"
<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>
複制代碼
2.然後在preferenceactivity裡面引用就好了
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
public void onprogresschanged(seekbar seekbar, int progress,
boolean fromuser) {
// todo auto-generated method stub
public void onstarttrackingtouch(seekbar seekbar) {
public void onstoptrackingtouch(seekbar seekbar) {