preference用法for_notification用法

preference用法for_notification用法PreferenceFragment引入在Android3.0之前,设置界面使用PreferenceActivity,在Android3.0之后,官方推荐使用PreferenceFragment,对应于碎片化技术。使用新建Fragment继承PreferenceFragment,加载选项配置xml文件。publicstaticclassNotificationPreferenceFr…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

PreferenceFragment

在Android3.0之前,设置界面使用PreferenceActivity,在Android3.0之后,官方推荐使用PreferenceFragment,对应于碎片化技术。

使用

新建Fragment

新建GeneralPreferenceFragment 继承PreferenceFragment,加载选项配置xml文件。

public static class GeneralPreferenceFragment extends PreferenceFragment { 
   
        @Override
        public void onCreate(Bundle savedInstanceState) { 
   
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.pref_general);
            setHasOptionsMenu(true);

            // Bind the summaries of EditText/List/Dialog/Ringtone preferences
            // to their values. When their values change, their summaries are
            // updated to reflect the new value, per the Android Design
            // guidelines.
            bindPreferenceSummaryToValue(findPreference("example_text"));
            bindPreferenceSummaryToValue(findPreference("example_list"));
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) { 
   
            int id = item.getItemId();
            if (id == android.R.id.home) { 
   
                startActivity(new Intent(getActivity(), SettingsActivity.class));
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    }

新建xml文件

在res文件夹目录下新建xml文件夹,在xml文件夹新建pref_general.xml

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

    <SwitchPreference android:defaultValue="true" android:key="example_switch" android:summary="@string/pref_description_social_recommendations" android:title="@string/pref_title_social_recommendations" />

    <!-- NOTE: EditTextPreference accepts EditText attributes. -->
    <!-- NOTE: EditTextPreference's summary should be set to its value by the activity code. -->
    <EditTextPreference android:capitalize="words" android:defaultValue="@string/pref_default_display_name" android:inputType="textCapWords" android:key="example_text" android:maxLines="1" android:selectAllOnFocus="true" android:singleLine="true" android:title="@string/pref_title_display_name" />

    <!-- NOTE: Hide buttons to simplify the UI. Users can touch outside the dialog to dismiss it. -->
    <!-- NOTE: ListPreference's summary should be set to its value by the activity code. -->
    <ListPreference android:defaultValue="-1" android:entries="@array/pref_example_list_titles" android:entryValues="@array/pref_example_list_values" android:key="example_list" android:negativeButtonText="@null" android:positiveButtonText="@null" android:title="@string/pref_title_add_friends_to_messages" />

</PreferenceScreen>

  • PreferenceScreen:根标签。
  • SwitchPreference:开关标签
  • EditTextPreference:编辑标签
  • ListPreference:集合标签,多选一。

效果图

在这里插入图片描述

分类

使用PreferenceCategory标签进行分类。

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


    <!-- NOTE: EditTextPreference accepts EditText attributes. -->
    <!-- NOTE: EditTextPreference's summary should be set to its value by the activity code. -->
    <PreferenceCategory android:key="@string/pref_header_mqtt" android:summary="@string/pref_header_mqtt" android:title="@string/pref_header_mqtt">
        <EditTextPreference android:capitalize="characters" android:defaultValue="@string/pref_defult_mqtt_ip" android:inputType="textCapWords" android:key="@string/pref_key_mqtt_ip" android:maxLines="1" android:selectAllOnFocus="true" android:singleLine="true" android:title="@string/pref_title_mqtt_ip" android:summary="@string/pref_defult_mqtt_ip" />

        <EditTextPreference android:capitalize="characters" android:defaultValue="@string/pref_defult_mqtt_port" android:inputType="textCapWords" android:key="@string/pref_key_mqtt_port" android:maxLines="1" android:selectAllOnFocus="true" android:singleLine="true" android:title="@string/pref_title_mqtt_port" android:summary="@string/pref_defult_mqtt_port" />

        <EditTextPreference android:capitalize="characters" android:defaultValue="@string/pref_defult_mqtt_topic" android:inputType="textCapWords" android:key="@string/pref_key_mqtt_topic" android:maxLines="1" android:selectAllOnFocus="true" android:singleLine="true" android:title="@string/pref_title_mqtt_topic" android:summary="@string/pref_defult_mqtt_topic" />

        <EditTextPreference android:capitalize="characters" android:defaultValue="@string/pref_defult_mqtt_user" android:inputType="textCapWords" android:key="@string/pref_key_mqtt_user" android:maxLines="1" android:selectAllOnFocus="true" android:singleLine="true" android:title="@string/pref_title_mqtt_user" android:summary="@string/pref_defult_mqtt_user" />

        <EditTextPreference android:capitalize="characters" android:defaultValue="@string/pref_defult_mqtt_pswd" android:inputType="textCapWords" android:key="@string/pref_key_mqtt_pswd" android:maxLines="1" android:selectAllOnFocus="true" android:singleLine="true" android:title="@string/pref_title_mqtt_pswd" android:summary="@string/pref_defult_mqtt_pswd" />
    </PreferenceCategory>
</PreferenceScreen>

使用Header跳转页面

使用preference-headers进行实现,在res/xml文件夹新建pref_headers.xml

<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- These settings headers are only used on tablets. -->

    <header android:fragment="com.pax.preference.SettingsActivity$GeneralPreferenceFragment" android:icon="@drawable/ic_info_black_24dp" android:title="@string/pref_header_general" />

    <header android:fragment="com.pax.preference.SettingsActivity$NotificationPreferenceFragment" android:icon="@drawable/ic_notifications_black_24dp" android:title="@string/pref_header_notifications" />

    <header android:fragment="com.pax.preference.SettingsActivity$DataSyncPreferenceFragment" android:icon="@drawable/ic_sync_black_24dp" android:title="@string/pref_header_data_sync" />

</preference-headers>

在Activity中设置xml

@Override
    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    public void onBuildHeaders(List<Header> target) { 
   
        loadHeadersFromResource(R.xml.pref_headers, target);
    }

进行平板适配,这种方式可以适配平板显示。

private static boolean isXLargeTablet(Context context) { 
   
        return (context.getResources().getConfiguration().screenLayout
                & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE;
    }

平板显示效果
在这里插入图片描述
手机显示效果
在这里插入图片描述

致谢

感谢观看,欢迎评论和点赞!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196320.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 51单片机控制步进电机-电路连接[通俗易懂]

    51单片机控制步进电机-电路连接[通俗易懂]51单片机控制步进电机-电路连接概要:本案例讲解的内容是51单片机控制步进电机硬件连接部分。后续会分别讲解单片机程序,S曲线加减速方法,上位机等相关内容硬件清单:1、51单片机控制板一个2、二相四线步进电机一个3、稳压电源一个4、TB6600步进电机驱动器一个整体连接图:原理图:功能部分说明:1、51单片机:①输出脉冲到TB6600驱动器PUL端口,从而控制步进电机转动②控制TB6600驱动器ENA端口,从而控制步进电机使能③控制TB6600驱动器DIR端口,从而控制步进电机

    2022年5月31日
    34
  • KRACK 攻击解密安卓传输数据,OpenBSD 提前释出补丁

    KRACK 攻击解密安卓传输数据,OpenBSD 提前释出补丁比利时鲁汶大学的两位研究人员正式披露了被命名为KRACK(KeyReinstallationAttacks)的密钥重安装攻击,他们开发的概念验证攻击演示了对Android设备传输数据的解密能力。如果你的设备支持Wi-Fi,那么很有可能你的设备受到影响。运行Android、Linux、Apple、Windows、OpenBSD、联发科和…

    2022年5月6日
    48
  • html a标签跳转_点击a标签不进行跳转

    html a标签跳转_点击a标签不进行跳转如果a标签的”href”属性为空的话,当点击修改链接时并不会跳到对应页面,而是只在本页面进行了刷新操作。1<ahref=”JavaScript:js_method();”</a>这种方法地址也不发生跳转,在传递this等参数的时候很容易出问题;而且javascript作为a的href属性的时候会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。W3C标准不推荐在href里面执行javascript..

    2022年8月12日
    9
  • php 依据字符串生成相应数组方法

    php 依据字符串生成相应数组方法

    2022年1月30日
    42
  • go语言要学多久才能工作_go语言可以开发什么

    go语言要学多久才能工作_go语言可以开发什么我在2011年就听说了Go并学习了一段时间,坦白的说,那时候对Go是比较无感的,因为并没有看到Go的特别亮眼的地方,可能和我使用C、Erlang、Java有关,这三种语言可以写高性能、高并发、高可用的服务;包含了面相过程、面向并发、面向对象的思想,我觉得我并不需要再学习Go,何况那个时候好像也没宣传的那么优秀。 一切都发生在418天前,因为工作的需要,我开始写Go了,本来预期是一段压抑、蛋疼的旅程

    2022年10月5日
    4
  • 特征工程

    特征工程

    2021年5月19日
    98

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号