Settings 添加一级菜单

2023-05-16

Settings添加一级菜单:

1、一级菜单项的实现是Activity

     例如MySettings.java,此类文件直接继承的是Activity,添加比较简单

(1)在清单文件中添加如下内容    

<activity android:name="MySettings"
                android:label="@string/my_settings_title"
                android:icon="@drawable/my_settings_ic"
                android:taskAffinity="">
            <intent-filter android:priority="1">
                <action android:name="com.android.settings.MYSETTINGS" />
                <action android:name="android.settings.MYSETTINGS" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.VOICE_LAUNCH" />
                <category android:name="com.android.settings.SHORTCUT" />
            </intent-filter>
            <intent-filter android:priority="9">//在category中的物理位置(按优先级排序时用到,并不是指第9个位置,数越大优先级越大越靠前)
                <action android:name="com.android.settings.action.SETTINGS" />//指定此项在settings中显示
            </intent-filter>
            <meta-data android:name="com.android.settings.ia.homepage"
                android:value="com.android.settings.category.device" />//指定此项显示在主页一级菜单这一category中
            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                android:value="true" />
        </activity>

(2)自己实现MySettings这个Activity,其中是具体功能逻辑的实现

2、一级菜单项的实现是fragment

(1)在清单文件中添加如下内容 

<activity android:name=".Settings$MySettingsActivity"   //注意此处,MySettingsActivity是Settings的内部类,后面会解释
                android:label="@string/my_settings_title"
                android:icon="@drawable/my_settings_ic"
                android:taskAffinity="">
            <intent-filter android:priority="1">
                <action android:name="com.android.settings.My_SETTING" />
                <action android:name="android.settings.My_SETTING" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.VOICE_LAUNCH" />
                <category android:name="com.android.settings.SHORTCUT" />
            </intent-filter>
            <intent-filter android:priority="9">
                <action android:name="com.android.settings.action.SETTINGS" />
            </intent-filter>
            <meta-data android:name="com.android.settings.category"
                android:value="com.android.settings.category.ia.homepage" />
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"//FRAGMENT_CLASS 表明value指定的类是fragment
                android:value="com.android.settings.MySettings" /> //MySettings实现类
            
            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                android:value="true" />
        </activity>

(2)自己实现MYSettings 这个fragment

(3)在Settings.java中添加

 public static class MySettingsActivity extends SettingsActivity { /* empty */ }

 MySettingsActivity 并不是一个Activity文件,只是一个SettingsActivity的子类,且是空实现。之所以要加此空的Activity,是为了外部应用能直接跳转到MySettingsActivity界面,因为如果只是fragment的话,外部是没法跳转到fragment界面的,跳转到MySettingsActivity时,会执行其父类SettingsActivity.java中的方法,并根据MySettingsActivity在清单文件中的注册信息, 它的meta-data的值,找到MySettingsActivity对应的fragment(MySettings),显示出fragment界面,实现借壳。

如果<meta-data>中使用的是FRAGMENT_CLASS,一般都会声明成Settings的内部类即

 <activity android:name="Settings$xxxActivity" > 的形式。   

注意此fragment是继承与settings中通用的SettingsPreferenceFragment,并不是一般的fragment类

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Settings 添加一级菜单 的相关文章

  • Android 以编程方式创建 SIP 帐户

    在我的应用程序中 我希望有一个 Activity 使用户能够在字段中添加他的 SIP 帐户参数 我不希望他们去 设置 gt 通话 gt 互联网通话设置 gt 添加帐户 gt 添加 我使用以下代码创建了具有活动的帐户 SipManager m
  • .NET 3.5 - 配置系统初始化失败异常

    在我的 winform 应用程序中 我尝试添加 userSetting 尽管 appSettings 也出现错误 添加设置后 我收到一个异常 其中显示 配置系统无法初始化 并带有内部异常 无法识别的配置部分 userSetting 异常详细
  • 程序集特定设置未在运行时加载

    我正在开发 NET 3 5 Windows 窗体应用程序 我有两个项目 用户界面和库 UI 使用强类型设置 这些设置通常存储在 app config 文件中 我使用 UI Properties Settings 类 由 Visual Stu
  • Django 每个应用程序的不同设置

    如何为每个应用程序使用不同的设置 例如 http www mysite com app1 http www mysite com app1使用 app1 文件夹的 settings py local settings py http www
  • 如何将 Delphi XE 包和设置移至其他用户?

    我们已经建立了一个新的 模板 开发机器 其中包括 Delphi XE 其中包括大量第三方和内部软件包 并打算为我们团队中的开发人员制作该计算机的多个克隆 请注意 我们并不是试图绕过许可 我们在克隆后 重新 激活 注册 Windows Off
  • 是否可以在设置应用程序中动态更改 iPhone 应用程序的设置页面?

    对于我正在开发的 iPhone 应用程序 我希望能够动态添加或删除应用程序设置区域的部分 理想情况下 我希望能够更改多值说明符中的选项列表 并添加可深入到一个设置页面的副本的新行 我没有在苹果文档中看到任何关于此的内容 但是编译后是否可以更
  • 如何在 swift 中向我的 cocoa 应用程序添加设置?

    我对 Swift 编程还很陌生 我想知道是否有一种简单的方法可以在 Swift 中向我的 Cocoa 应用程序添加设置 首选项 如果可能的话 我想要一份分步指南 我主要想知道如何将用户的首选项存储在磁盘和代码部分上 在我当前的代码中 它将需
  • 如何在 IntelliJ 中为整个项目配置“缩短命令行”方法

    当我运行测试时 出现错误 命令行太长 如果我将运行 调试配置中的 缩短命令行 方法设置为特定方法或类的 JAR 清单 它会起作用 但如何为整个项目设置它 或者是否有 IDE 全局设置 在 idea 文件夹中 更改workspace xml
  • Visual Studio打开文件问题

    是否可以在 Visual Studio 2008 中打开项目 而不打开上次打开项目时先前打开的所有文件 我习惯在处理许多文件时保持打开状态 因此下次我打开项目时 它 非常缓慢 将一堆文件加载到编辑器中 我什至可能不需要打开它们 我已经搜索了
  • 如何禁止chrome打开“新窗口”和“标签”?

    他们是否可以通过 Chrome 浏览器设置将互联网上的所有页面保留在一个窗口中 或者我可以用一个插件 插件来做到这一点 当我单击某些链接时 我不希望在新选项卡和 或新窗口中打开网页 如果有人有任何建议请告诉我 谢谢 a href http
  • iOS 获取代理设置

    在我的项目中 我使用 libcurl 通过互联网下载数据 问题是 libcurl 无法检测 wifi 连接的代理设置 我必须手动设置 libcurl 的设置 所以我想知道如何获取 wifi 连接的代理设置 我在钥匙串中找到了一些有关信息的线
  • 在 iOS 中加载/保存设置

    我在 AppDelegate 中定义了以下两个过程 保存设置和加载设置 单击保存按钮后 我将在 AppDidFinishLaunching 方法中调用 loadSettings 过程 并在设置视图中调用 saveSettings 过程 这两
  • iPhone更新应用程序版本(在“设置”中)[重复]

    这个问题在这里已经有答案了 可能的重复 如何在应用程序的设置包中显示应用程序版本修订 https stackoverflow com questions 877128 how can i display the application ve
  • 如何从 iPhone/iPad 删除应用程序及其设置

    我正在 iPhone iPad 上测试应用程序安装 但我只能执行一次 因为 iOS 会记住设置 例如允许访问照片等 并且在我卸载应用程序时永远不会清除它们 因此 下次我安装它时 它不会要求允许访问照片等 除了重置设备之外 还有什么方法可以完
  • .Net应用程序设置路径

    默认情况下 Windows 应用程序设置保存在该目录中 USERPROFILE Local Settings Application Data
  • 将自定义应用程序设置存储在 XML 中

    请帮忙 我有这段代码 它是我的类来序列化 反序列化应用程序设置 XmlRoot EvaStartupData Serializable public class MyConfigClass public string ServerName
  • 如何在 Windows 上的 Eclipse 中设置 Clang 工具链?

    我为一个愚蠢的问题道歉 但我在网上找不到答案 我正在努力为 64 位计算机上的 Windows 7 中的 Eclipse 设置 Clang 编译器 链接器 我对 C 的了解非常过时 并且从未在 Eclipse 中工作过 我想要实现的是在 W
  • C# Settings.Default.Save() 不保存? [复制]

    这个问题在这里已经有答案了 这个错误很不寻常 基本上我的代码会改变Settings Default Example然后保存并重新启动程序 然后当它加载时 它会显示一个消息框 然而奇怪的是 当表单加载时它显示一个空值 这是我的代码 Main
  • 用户模式 ​​.NET 设置存储在哪里?

    我想知道 NET 中 settings 文件背后的魔力是什么 假设您创建了一个在此示例中称为的程序集SettingsHolder 您创建一个公共的设置类 其中在用户模式下有一个字符串 然后进行编译 现在 您在 MyApp 中引用您的程序集
  • 使用 .NET C# 从 Azure 云服务读取配置设置

    我正在寻找一种使用 C 从部署的 Windows Azure 云服务读取设置的方法 是否有任何 Azure SDK 可用于轻松加载此值 Azure 门户的屏幕截图显示了我要读取的设置 EDIT1 我错过了补充一点 我尝试从外部应用程序加载设

随机推荐

  • PAT1018锤子剪刀布 (20)

    include using namespace std int N int ping 61 0 int AB AJ AC int BB BJ BC int AW 61 0 int BW 61 0 int main cin gt gt N c
  • 1019. 数字黑洞

    include include using namespace std int big small void xin int x int a 4 a 3 61 x 10 x 61 x 10 a 2 61 x 10 x 61 x 10 a 1
  • 2021-09-03 eventlog对应各标识表示的含义

    当前联想设备路径 system etc event log tags eventlog中各标识表示的含义 当前看的比较多的标识 am pss 42 answer to life the universe etc 3 314 pi 1003
  • ubuntu中shell命令方括号[]出现“not found” “未找到命令”问题

    ubuntu中shell命令方括号 出现 not found 未找到命令 问题 1 问题现象 在ubuntu中进行shell script或者shell命令时 xff0c 用到方括号进行判断的时候出现了 not found 或者 未找到命令
  • 在unbuntu上使sqlite数据库显示格式规整

    在unbuntu上使sqlite数据库显示格式规整 虚拟机的数据库中 xff0c 很多时候显示的数据都是比较凌乱的 xff0c 每次打开数据库想查看数据 xff0c 都需要自行设置数据格式 xff0c 才能使数据库的数据显示整齐 下图是显示
  • RV1109开发板ssh服务器移植到arm开发板

    RV1109开发板ssh服务器移植到arm开发板 ssh功能移植到RV1109开发板的 xff0c 由于RV1109的SDK中 xff0c 没有telnet功能 xff0c 有时候adb功能在量产中需要关闭 xff0c 避免造成设备留有漏洞
  • Telnet移植到开发板

    Telnet移植到开发板 Telnet有什么作用 Telnet是一种远程登录协议 xff0c 它是一种重要的远程登录工具 嵌入式设备进行开发的时候 xff0c Telnet可以通过网口 xff0c 进行开发板与虚拟机之间进行通信 下载源码
  • 虚拟机修改交叉工具链路径

    标题虚拟机修改交叉工具链路径 把工具链解压到系统根目录 sudo tar xvf rv1126 rv1109 compiler 20201214 tar gz C 设置临时工具链环境变量 执行以下命令后 xff0c 当前终端窗户即可使用工具
  • VSCode快捷方式

    1 查看函数定义 xff1a Ctrl 43 鼠标左击跳到定义 2 查看完成后 xff0c 函数返回 xff1a Windows Alt 43 或者 鼠标侧键 Linux Ctrl 43 Alt 43 Mac Ctrl 43 3 撤销 xf
  • Typora编辑的markdown文档莫名其妙消失或未保存,两种恢复方式

    方式一 xff1a 一 打开typora 二 文件 偏好设置 三 点击未保存的草稿没找到最近的文件恢复即可 方式二 xff1a 打开C Users 计算机用户名 AppData Roaming Typora draftsRecover便可以
  • 2022年6月TIOBE编程语言排名:Python、C、Java

    2022年6月TIOBE编程语言排名 xff1a Python C Java 6 月榜单中TIOBE 官方用 C 43 43 即将超越 Java 为标题凸显出了最大的变化 xff0c 早在2021年 xff0c Python 在人工智能这条
  • neo4j desktop 重装几次之后,数据库出现感叹号

    问题 xff1a neo4j desktop 重装几次之后 xff0c 数据库出现感叹号 xff0c 而且出现了以前的数据库 xff0c 且无法删除 截图如下 xff1a 原因 xff1a 上次卸载不彻底 xff0c 存在系统缓存文件 新软
  • latex 编译 bib文件 的操作步骤

    本人使用的编辑软件 xff0c Texworks xff08 live自带的编辑工具 xff09 1 编译 tex文件 xff08 确保无报错 xff09 生成pdf 2 编译 bib文件 xff08 确保无报错 xff09 3 编译 te
  • 解决电脑能上网不能登陆QQ-已测试并解决

    方法1 现在常用的一种方法 xff1a 先连接手机热点 xff0c 然后等登录上后突然断开 xff0c 重新连回自己的网络 方法2 https blog csdn net qq 41862220 article details 109686
  • HTML页面中文字增多,字号会突然变大

    DIV中的文字超过一定数量之后 xff0c 在浏览器上显示突然变大 xff0c 与CSS设定的字号大小严重不符合 解决办法 xff1a 父级DIV添加CSS属性 height 100 或者 随便设置一个高度 这个问题很奇怪 xff0c 之前
  • C++分割字符串

    Python有自带的字符串分割函数 xff0c 但是C 43 43 却没有 xff0c 于是参考网上各种C 43 43 分割字符串的资源 xff0c 将其整理如下 方法1 xff1a include lt string h gt inclu
  • angular6解析模板字符串,$compile服务在angular6中的实现方法

    angular6解析动态字符串模板 依赖 xff1a Compiler服务viewContanierRef服务 步骤 xff1a 创建指令 xff0c 并通过指令接受字符串接受字符串 xff0c 并通过此字符串动态创建组件及模块compil
  • “JSON parse error: Unexpected character (‘1‘ (code 49))的解决方式

    现在是 xff1a 2022年4月30日22 29 49 大家好 xff0c 我是雄雄 刚刚在调用接口的时候 xff0c 出现了个错误 xff1a span class token punctuation span span class t
  • springboot实现用户统一认证、管理-前端实现

    大家好 xff0c 我是雄雄 xff0c 欢迎关注微信公众号 xff1a 雄雄的小课堂 前言 现在是 xff1a 2022年6月2日15 43 51 上篇文章讲述了springboot中实现用户统一认证的具体内容 xff0c 主要从后端角度
  • Settings 添加一级菜单

    Settings添加一级菜单 xff1a 1 一级菜单项的实现是Activity 例如MySettings java xff0c 此类文件直接继承的是Activity xff0c 添加比较简单 xff08 1 xff09 在清单文件中添加如