preferenceActivity和preferencescreen用法

 1.  首先生成一个preferencescreen的xml文件..看代码:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <PreferenceScreen
  3.   xmlns:android="http://schemas.android.com/apk/res/android">
  4. <CheckBoxPreference
  5.    android:key="check1"
  6.    android:title="音乐"
  7.    android:summary="adas"
  8.    />
  9.   <CheckBoxPreference
  10. android:key="autoBack"
  11. android:title="自动回复"
  12. android:summaryOn="开启"
  13. android:summaryOff="关闭"
  14. android:defaultValue="true"
  15. />   

  16. <!-- 这里是我自定义的Preference,详细代码请看下面

  17. android:dialogLayout="@layout/setting_widthseekbar"
  18. 这个就是弹出窗口后要显示的布局文件..这个大家想显示成什么样子.自己设置了

  19. -->
  20. <preferenceScreen.hall.SeekBarPreference

  21.     android:key="sss"
  22.         android:title="111"
  23.         android:dialogTitle="333"
  24.         android:dialogLayout="@layout/setting_widthseekbar"
  25.         android:persistent="true"/>

  26. <PreferenceCategory android:title="SMS 助手">
  27. <CheckBoxPreference
  28. android:key="smsSilence"
  29. android:title="静音"
  30. android:summaryOn="开启"
  31. android:summaryOff="关闭"
  32. android:defaultValue="false"
  33. />
  34. <PreferenceScreen android:title="更多选项">
  35. <CheckBoxPreference
  36. android:key="cb21"
  37. android:title="功能1"
  38. android:summaryOn="开启"
  39. android:summaryOff="关闭"
  40. android:defaultValue="true"
  41. />
  42. <CheckBoxPreference
  43. android:key="cb22"
  44. android:title="功能2"
  45. android:summaryOn="使用"
  46. android:summaryOff="停用"
  47. android:defaultValue="true"
  48. />

  49. <ListPreference
  50. android:key="list1"
  51. android:title="android forum"
  52. android:summary="开发论坛"
  53. android:dialogTitle="请选择论坛"
  54. android:entries="@array/entries"
  55. android:entryValues="@array/entryvalue"
  56. />
  57. <EditTextPreference
  58. android:key="et1"
  59. android:title="EditTextPreference Sample"
  60. android:summary="点击输入"
  61. android:dialogTitle="输入设置"
  62. android:defaultValue="Hello EditTextPreference"
  63. />
  64. </PreferenceScreen>
  65. </PreferenceCategory>

  66. <PreferenceCategory android:title="其他选项">
  67. <RingtonePreference
  68. android:key="rt1"
  69. android:title="RingtonePreference Sample"
  70. android:summary="选择铃声"
  71. />
  72. <Preference
  73.   android:key="aa"
  74.   android:title="测试"
  75.   android:summary="测试中"
  76.   />
  77.    </PreferenceCategory>
  78.   
  79. </PreferenceScreen>
复制代码
2.然后在preferenceActivity里面引用就好了
  1. import android.app.Activity;
  2. import android.os.Bundle;
  3. import android.preference.CheckBoxPreference;
  4. import android.preference.Preference;
  5. import android.preference.Preference.OnPreferenceChangeListener;
  6. import android.preference.PreferenceActivity;

  7. public class preferenceScreen extends PreferenceActivity
  8. {
  9. private CheckBoxPreference chekcb=null;
  10.     /** Called when the activity is first created. */
  11. @Override
  12.   protected void onCreate(Bundle savedInstanceState) {
  13.    // TODO Auto-generated method stub
  14.    super.onCreate(savedInstanceState);
  15.    addPreferencesFromResource(R.xml.preference);
  16.    chekcb=(CheckBoxPreference) findPreference("autoBack");//这里就像findViewById一样,不过这里的id其实是key的值..

  17.   //下面设置监听器
  18.    chekcb.setOnPreferenceChangeListener(new myPreferencesChance());
  19.   }
  20.     class myPreferencesChance implements OnPreferenceChangeListener{

  21.   @Override
  22.   public boolean onPreferenceChange(Preference preference, Object newValue) {
  23.    // TODO Auto-generated method stubd
  24.    System.out.println("newValue"+newValue);
  25.    return true;
  26.   }
  27.    
  28.     }
  29. }
复制代码


有时候因为需要我们需要自己定义个preference选项..系统自带的那些就满足不了我们了..下面让我们来看下如何自定义preference选项,其实很简单..比如说你要定义一个对话框形式的preference..只要继承DialogPreference就可以了,然后在preferenceScreen里面引用,设置一下属性就好了,xml设置,请看上面的preferenceScreen.xml文件..下面是代码
  1. ackage preferenceScreen.hall;

  2. import android.content.Context;
  3. import android.preference.DialogPreference;
  4. import android.util.AttributeSet;
  5. import android.widget.SeekBar;
  6. import android.widget.SeekBar.OnSeekBarChangeListener;

  7. public class SeekBarPreference extends DialogPreference implements OnSeekBarChangeListener{

  8. public SeekBarPreference(Context context, AttributeSet attrs) {
  9.   super(context, attrs);
  10.   // TODO Auto-generated constructor stub
  11. }
  12. @Override
  13. public void onProgressChanged(SeekBar seekBar, int progress,
  14.    boolean fromUser) {
  15.   // TODO Auto-generated method stub

  16. }

  17. @Override
  18. public void onStartTrackingTouch(SeekBar seekBar) {
  19.   // TODO Auto-generated method stub

  20. }

  21. @Override
  22. public void onStopTrackingTouch(SeekBar seekBar) {
  23.   // TODO Auto-generated method stub

  24. }

  25. }
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PreferenceScreen 是 Android 中的一个 UI 组件,它提供了一种结构化的方式来呈现应用程序的设置选项。它是 Preference 类的子类,可以包含多个 Preference 类的实例,例如 CheckBoxPreference、EditTextPreference 等。当用户点击 PreferenceScreen 中的某个选项时,会进入一个新的 PreferenceScreen 或者打开一个 Dialog,让用户进行相应的设置。 在实现 PreferenceScreen 的时候,需要在布局文件中使用 PreferenceScreen 标签,如下所示: ```xml <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 包含多个 Preference 类的实例 --> </PreferenceScreen> ``` 在 java 代码中,可以使用 PreferenceFragment 或者 PreferenceActivity 来管理 PreferenceScreen。 PreferenceFragment 是一个 Fragment,它可以被添加到 Activity 中。在 PreferenceFragment 中,可以通过调用 addPreferencesFromResource(int) 方法来加载一个 PreferenceScreen 布局文件。例如: ```java public class MyPreferenceFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } } ``` PreferenceActivity 是一个 Activity,它继承自 ListActivity。在 PreferenceActivity 中,可以通过调用 addPreferencesFromResource(int) 方法来加载一个 PreferenceScreen 布局文件。例如: ```java public class MyPreferenceActivity extends PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } } ``` 需要注意的是,从 Android 11 开始,推荐使用 PreferenceFragmentCompat 替代 PreferenceFragment。PreferenceFragmentCompat 是一个兼容库,可以在 Android 4.0 及以上版本中使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值