天天看點

preferenceActivity和preferencescreen用法

 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;

    }

}

preferenceActivity和preferencescreen用法

有時候因為需要我們需要自己定義個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) {

preferenceActivity和preferencescreen用法

繼續閱讀