当前位置: 首页 > ai >正文

在Settings的一级菜单中增加一个选项

top_level_settings.xml中添加

<com.android.settings.widget.HomepagePreferenceandroid:fragment="com.android.settings.network.NetworkSettingsFragment"android:icon="@drawable/ist_ic_settings_wireless"android:key="top_level_network_settings"android:order="-150"android:title="@string/network_settings_title"android:summary="@string/network_settings_summary"settings:controller="com.android.settings.network.TopLevelNetworkSettingsPreferenceController"/>

TopLevelAdvancedPreferenceController:控制是否显示

public class TopLevelAdvancedPreferenceController extends AbstractPreferenceController {public TopLevelAdvancedPreferenceController(Context context) {super(context);}@Overridepublic boolean isAvailable() {// 判断是否显示该设置项return true; // 一直可用}@Overridepublic String getPreferenceKey() {return "top_level_advanced";}
}

NetworkSettingsFragment:点进去的fragment页面

public class NetworkSettingsFragment extends DashboardFragment {@Overrideprotected String getLogTag() {return "NetworkSettings";}@Overrideprotected int getPreferenceScreenResId() {return R.xml.network_settings; // 对应的 XML 布局文件}@Overridepublic int getMetricsCategory() {return SettingsEnums.PAGE_ID_NETWORK_SETTINGS;}//createPreferenceControllers(Context)
//创建并返回与每个 Preference Key 对应的 !!!AbstractPreferenceController 实例!!!@Overrideprotected List<AbstractPreferenceController> createPreferenceControllers(Context context) {return NetworkPreferenceControllerHelper.getControllers(context);}
}

Helper:一般是获取数据类

public class NetworkPreferenceControllerHelper {public static List<AbstractPreferenceController> getControllers(Context context) {List<AbstractPreferenceController> controllers = new ArrayList<>();controllers.add(new WifiPreferenceController(context, "wifi_toggle"));controllers.add(new MobileDataPreferenceController(context, "mobile_data_toggle"));controllers.add(new AirplaneModePreferenceController(context, "airplane_mode_toggle"));return controllers;}
}
http://www.xdnf.cn/news/7890.html

相关文章:

  • TYUT-企业级开发教程-第9章
  • python06——组合数据类型
  • 3D Gaussian Splatting for Real-Time Radiance Field Rendering——文章方法精解
  • UML基本概念:构造块、公共机制与规则
  • 45页 @《人工智能生命体 新启点》中國龍 原创连载
  • 智能共享充电桩软件系智能共享充电桩软件系统:如何一站式定制解决方案?
  • 运维Web服务器核心知识与实战指南
  • 算法打卡第三天
  • 【算法】滑动窗口(细节探究,易错解析)5.21
  • Baklib知识中台驱动智能服务创新
  • AbMole| Ferrostatin-1(25322-68-3,M2698,铁抑素-1)
  • pinia的简单使用
  • 家用和类似用途电器的安全 第1部分:通用要求 与2005版差异(7)
  • openlayer:12在某一区县内(一定区域内)加载不同类型的坐标位置,点击后弹出overlay弹窗显示坐标点详细信息,点击弹窗上关闭按钮关闭弹窗
  • 鸿蒙版Flutter库torch_light手电筒功能深度适配
  • 传统Spring MVC + RESTful 与 Vue3 结合 JWT Token 验证的示例
  • 143.重排链表的尝试
  • 数据库表关系详解
  • URL 类知识点详解
  • Python入门手册:正则表达式的学习
  • 代理IP在市场分析与用户画像研究中的应用解析
  • spring cloud alibaba-Geteway详解
  • 禁忌搜索算法:从原理到实战的全解析
  • 现代人工智能系统的实用设计模式
  • Science Advances | MIST:一种新型深度学习框架可解释的单细胞T细胞多组学整合分析工具
  • 基于Java( GUI )实现多人在线聊天软件
  • UE5.6新版本—— 动画光照系统重点更新
  • 3.2.3
  • SMT贴片工厂核心工艺与质量控制解析
  • LeetCode-链表-合并两个有序链表