首页 > 编程知识 正文

fragment如何使用(android activity)

时间:2023-05-04 07:03:14 阅读:76323 作者:2015

调用PreferenceFragment类发生错误,我花了三天才解决,查了官方文档,看了百度

最后在这位大人物的投稿的帮助下终于解决了。

3359 blog.csdn.net/cqx 13763055264/article/details/78498419 # comment box

PreferenceActivity创建和使用比较复杂,Android官方现在不建议使用了,使用Preference和fragment的结合更加便利地写出一个settings页面,下面来介绍PreferenceScreen和fragment结合方法当然,阅读官方文档也能学到很多

1 .引线包问题

很多都被扔掉了,所以我先找到了PreferenceFragmentCompat

Guide选择此选项可以查看详细的sample

左边是特性

3359 developer.Android.com/reference/Android/support/V7/preference/preferencefragmentcompat.html

这里显示的是添加gradel依赖关系

将支持库添加到gradel.builder

//implementation ' com.Android.support : preference-v 7:28.0.0-alpha1'以下正式开始

1:文件的结构是主活动、布局布局和可部署的XML碎片布局

2 .具体内容

2.1 【settingsfragment.xml】在布局片段中使用首选项屏幕标记作为最外层包裹,不必进行管理以便以后调用

? XML版本=' 1.0 '编码=' utf-8 '? preferencescreenxmlns 3360 Android=' http://schemas.Android.com/apk/RES/Android ' preference Android 3360 key=' clear switchpreferenceandroid 3360 key=' push ' Android 3360 title='推送通知'/switchpreferenceandroid 3360 key=' no _ wifi ' Android preference Android 3360 key=' about ' Android 3360 title='概述'//prepred

package com.ywjh.settingsbyprenference; importandroidx.annotation.nullable; importandroidx.app compat.app.appcompatactivity; 导入安卓. OS.bundle; 导入Android.preference.preference fragment; /*在主类中打开layout布局,其中layout在class中调用以下类,并调用引用的xml块*/publicclassmainactivityextendsappcompatactivity { @ overrideprotectedvoidoncreate (bundlesavity ) ) overrrideprotectedvoidoidon }/*在主类中添加静态类继承首选项ment以实现oncreate和addPreferencesFromResource调用xml布局*/publicstaticclasssettingsfragmentextendspreferencefragment { @ overridepublicvoidoncreate @ nullablebundlesavedinstancestate ate add } }} 2.21更新不再使用首选项,因此使用androidx打包的方法也是一个不错的选择。 实现方法更为简化,当然最好使用PreferenceFragmentCompat方法。 之后,有时间的话就更新吧

package com.ywjh.settingsbyprenference; importandroidx.annotation.nullable; importandroidx.app compat.app.appcompatactivity; 导入安卓. OS.bundle; importandroidx.preference.preference fragment; publicclassmainactivityextendsappcompatactivity { @ overrideprotectedvoidoncreate (bundlesavedinstancestate ) super.oncreatate } publicstaticclasssettingsfragmentextendspreferencefragment {//@ override//public void oncreate (@ nullablebundlesavedindind ) //} @ overridepublicvoidoncreatepreferences (bundlesavedinstancestate,字符串路由) addpreferencesfromresource (r.rerence )

2.22实现需要调用的layout布局【activity_main.xml】,并将以前编写的关于首选项的xml布局添加为fragment布局

在android:name表面完成主类-”实现类

? XML版本=' 1.0 '编码=' utf-8 '? androidx.constraint layout .构件. constraintlayoutxmlns 3360 Android=' http://schemas.Android.com/apk/RES/Android apk/RES-auto ' xmlns 3360 tools=' http://方案. Android.com tools ' Android 3360 layout _ width=' match _ parent ' Android : DTH=' match _ parent ' Android 3360 layout _ height=' match _ parent ' Android 3360 id=' @ id/settings fragment ' Android。

实测如果不输入id,就会发生错误。 追加的话就完成了

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。