Android设置界面_Preference

本文介绍了Android中的Preference使用,包括PreferenceActivity、PreferenceFragment及其各种子类的用法,以及如何自定义视图和处理监听事件。同时讲解了如何在XML中配置属性,设置默认值,以及实现设置界面的多面板和子屏幕显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AndroidPreference

基本上每个应用都有一个设置(首选项)界面, Google其实提供了默认的设置界面实现方式. 介绍下

Preference该类拥有多个直接或间接的子类, 这些子类可以组成不同内容的首选项界面. 和一般界面不同的

关键类:

  • Preference 普通
    • RingtonePreference 铃声
    • CheckBoxPreference 选择按钮
    • SwitchPreference 切换按钮
    • PreferenceGroup(抽象类)
    • PreferenceCategory 分类
    • PreferenceScreen 首选项界面
    • DialogPreference (抽象类)
    • ListPreference 列表
    • EditTextPreference 输入框
    • MultiSelectListPreference 多选
  • PreferenceActivity 首选项界面
  • PreferenceFragment 首选项片段
  • PreferenceViewHolder

首选项

可以通过在res/xml目录下创建一个XML文件来控制显示一个首选项界面内容, 一般命名为preference.xml.

PreferenceActivity

在android3.0以下应使用继承PreferenceActivity方式实现(因为Fragment是3.0之后才有的), 但是如果需要使用多面板模式就必须使用这种方法

public class MainActivity extends PreferenceActivity {
   

    @Override protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.activity_main); 不允许使用一般布局
        addPreferencesFromResource(R.xml.preference);
    }
}
PreferenceFragment

在Android3.0或以上应采用Fragment的形式, 相对Activity更加灵活和效率. 使用方法和一般Fragment一样.

public static class SettingsFragment extends PreferenceFragment {
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        addPreferencesFromResource(R.xml.preferences);
    }
    ...
}

属性

以下介绍的是所有Preference标签通用的属性

  • android:key

    等同于SharePreference中的key值, 对于某些不需要存储数据的首选项可以不填写该属性(例如PreferenceCategory和PreferenceScreen)

  • android:title

    提供用户可见的标题

  • android:defaultValue

    在SharePreference中的默认值

  • android:summary

    描述性文字

  • android:icon

    图标

示例

演示所有的标签

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:key="@string/app_name">
    <CheckBoxPreference android:title="CheckBoxPreference"/>
    <SwitchPreference android:title="SwitchPreference"/>
    <PreferenceCategory android:title="PreferenceCategory"/>
    <ListPreference android:title="ListPreference"/>
    <EditTextPreference android:title="EditTextPreference"/>
    <MultiSelectListPreference android:title="MultiSelectListPreference"/>
    <RingtonePreference android:title="RingtonePreference"/>
    <Preference android:title="Preference"/>
</PreferenceScreen>

PreferenceScreen

表示一个首选项界面(首选项布局必须以该标签为根标签)

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值