天天看点

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用法

继续阅读