在菜单Setting加入子菜单
可以模仿Settings其他菜单项加入自己想要的一级或二级子菜单项。
比如,在菜单Settings里加入一级和二级Usb Mode Settings菜单项 (以Android4.4 KK为例)
一. 加入一级子菜单项Usb Mode Settings, 加在About phone后面
1. packages/apps/Settings/AndroidManifest.xml
<activity android:name="Settings$DeviceInfoSettingsActivity"
android:theme="@style/Theme.Holo.DialogWhenLarge"
android:label="@string/device_info_settings"
android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.settings.DEVICE_INFO_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />db
<category android:name="android.intent.category.VOICE_LAUNCH" />
</intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.DeviceInfoSettings" />
<meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
android:resource="@id/about_settings" />
</activity>
<activity android:name="Settings$UsbModeSettingsActivity"
android:theme="@style/Theme.SubSettingsDialogWhenLarge"
android:label="@string/usb_mode_settings"
android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.settings.USB_MODE_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.UsbModeSettings" />
<meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
android:resource="@id/usb_mode_settings" />
</activity>
2. packages/apps/Settings/res/xml/settings_headers.xml
<!-- About Device -->
<dashboard-tile
android:id="@+id/about_settings"
android:title="@string/about_settings"
android:fragment="com.android.settings.DeviceInfoSettings"
android:icon="@drawable/ic_settings_about"
/>
<!-- Usb Mode -->
<dashboard-tile
android:id="@+id/usb_mode_settings"
android:title="@string/usb_mode_settings"
android:fragment="com.android.settings.UsbModeSettings"
android:icon="@drawable/ic_settings_about"
/>
Lollipop
packages\apps\Settings\res\xml\dashboard_categories.xml
<!-- Usb Mode -->
<dashboard-tile
android:id="@+id/usb_mode_settings"
android:title="@string/usb_mode_settings"
android:fragment="com.android.settings.UsbModeSettings"
android:icon="@drawable/ic_settings_about"
/>
3. packages\apps\Settings\src\com\android\settings\Settings.java
public static class DeviceInfoSettingsActivity extends SettingsActivity { /* empty */ }
+ public static class UsbModeSettingsActivity extends SettingsActivity { /* empty */ }
public static class ApplicationSettingsActivity extends SettingsActivity { /* empty */ }
4. packages/apps/Settings/src/com/android/settings/Settings.java
DeviceInfoSettings.class.getName(),
+ UsbModeSettings.class.getName(),
ManageApplications.class.getName(),
Lollipop
packages\apps\Settings\src\com\android\settings\SettingsActivity.java
DeviceInfoSettings.class.getName(),
+ UsbModeSettings.class.getName(),
ManageApplications.class.getName(),
5. packages/apps/Settings/res/values/strings.xml
增加新字符串
新增部分
6. packages/apps/Settings/res/drawable/
添加图标
7. 模仿packages/apps/Settings/res/xml/device_info_settings.xml新加一layout文件
packages/apps/Settings/res/xml/usb_mode_settings.xml
android:title="@string/about_settings">
<!-- Device status - launches activity -->
<PreferenceScreen android:key="status_info"
android:title="@string/device_status"
android:summary="@string/device_status_summary">
<intent android:action="android.intent.action.MAIN"
android:targetPackage="com.android.settings"
android:targetClass="com.android.settings.deviceinfo.Status" />
</PreferenceScreen>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/usb_mode_settings">
<PreferenceCategory
android:title="@string/usb_connection_category" />
<CheckBoxPreference
android:key="usb_mtp"
android:title="@string/usb_mtp_title"
android:summary="@string/usb_mtp_summary"
/>
<CheckBoxPreference
android:key="usb_mass_storage"
android:title="@string/usb_ptp_title"
android:summary="@string/usb_ptp_summary"
/>
</PreferenceScreen>
8. 模仿packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java新加一代码实现
packages/apps/Settings/src/com/android/settings/UsbModeSettings.java
二. 加入一级子菜单项Usb Mode Settings, 加在Developer options下面, 在"Desktop backup password"后面
1.packages/apps/Settings/AndroidManifest.xml
<activity android:name="SetFullBackupPassword"
android:theme="@style/Theme.SubSettingsDialogWhenLarge"
android:exported="false">
</activity>
<activity android:name="UsbModeSettings"
android:theme="@style/Theme.SubSettingsDialogWhenLarge"
android:exported="false">
</activity>
2. packages/apps/Settings/res/xml/development_prefs.xml
<PreferenceScreen
android:key="local_backup_password"
android:title="@string/local_backup_password_title"
android:summary="@string/local_backup_password_summary_none"
android:persistent="false" >
<intent
android:action="android.settings.privacy.SET_FULL_BACKUP_PASSWORD"
android:targetPackage="com.android.settings"
android:targetClass="com.android.settings.SetFullBackupPassword" />
</PreferenceScreen>
<PreferenceScreen
android:key="usb_mode"
android:title="@string/usb_mode_settings"
android:summary="@string/usb_mode_settings_summary"
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="com.android.settings"
android:targetClass="com.android.settings.UsbModeSettings" />
</PreferenceScreen>
3. /packages/apps/Settings/res/values/strings.xml
+ <string name="usb_mode_settings">USB mode settings</string>
......
4. 新加文件
res/layout/usb_mode_settings.xml
packages/apps/Settings/res/drawable/ 图标
src/com/android/settings/UsbModeSettings.java
在菜单Setting加入子菜单相关推荐
- 如何动态添加菜单/菜单项、子菜单、右键菜单
有关菜单的操作主要用到 CMenu 类,当然也可用相应 API 函数, CMenu 类只是 MFC 对 API 中操作菜单的函数的封装而已. 不过能用类就尽量用类,类的组织方式好呗,代码看着也舒服. ...
- dedecms二级菜单中判断子菜单标签的方法
这篇文章将为大家详细讲解有关dedecms二级菜单中判断子菜单标签的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获. 虚拟接口是用户本地数据中心通过海外专线访问V ...
- 鼠标移动事件(鼠标移动到主菜单上显示子菜单)
mouseenter():当鼠标指针穿过元素时,会发生 mouseenter 事件.与 mouseover 事件不同,只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件.如果鼠标指针穿 ...
- Android菜单详解——子菜单(SubMenu)
1,子菜单就是将功能相同或相似的分组进行多级显示的一种菜单. 2,创建子菜单的步骤: a) 覆盖Activity的onCreateOptionsMenu()方法,调用Menu的addSubMenu() ...
- C#遍历ContextMenuStrip右键菜单中包含子菜单的所有菜单并添加事件
今天写程序的时候,用到了右键菜单控件ContextMenuStrip,真的很方便,写了几个菜单与子菜单项,本来是可以用双击来给每一个菜单添加事件的,不过,这样做似乎非常麻烦,而且对一些子菜单也不容易控 ...
- gitlab如何克隆项目到本地进行开发,如何让webstorm项目右键菜单出现Git子菜单,右下角出现Matser分支
cd 到盘符 例如D:. cd 到您的项目目录 去gitlab对应项目拷贝http的克隆地址 然后在gitlab命令窗口输入 git clone http://192.168.2.231/knoww ...
- Android之子菜单的创建
菜单包括选项菜单(OptionMenu).上下文菜单(ContextMenu).子菜单(SubMenu). 创建子菜单(SubMenu)的步骤: 1.重写Activity的onCreateOption ...
- Electron中实现菜单、子菜单、以及自带操作事件
场景 用HTML和CSS和JS构建跨平台桌面应用程序的开源库Electron的介绍以及搭建HelloWorld: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/a ...
- php在菜单栏里加子菜单,WordPress后台添加子菜单add_submenu_page()
接上文:WordPress后台添加顶级菜单add_menu_page(),今儿再分享一下在 wordpress 后台侧边栏添加子菜单的方法,用到的函数是:add_submenu_page() 函数用法 ...
最新文章
- 蓝牙地址的name为null_蓝牙, enable协议栈流程
- linux kernel的spinlock代码导读和分析
- phpnow mysql_使用PHPnow搭建本地PHP环境+创建MySQL数据库 | 倡萌的自留地
- algorithm -- 选择排序
- HGE2D引擎按键消息分析
- 格式工厂2012致力于建立一个不受强大的团队
- 50 FI配置-财务会计-固定资产-与总账集成-定义集成资产购置的技术清算科目
- pandas时间处理操作
- Spring的注解形式:@Repository、@Service、@Controller
- python如何让图片镜像翻转_如何用 Python 增量备份 Roam Research 笔记图片?
- Sublime text3 更改侧边栏颜色
- 【概率论与数理统计】小结7 - 统计学中的基本概念
- 纯CSS3实现兔斯基简单害羞表情
- 【深入浅出通信原理-学习笔记】信道
- 整理外企常用英语及其缩写
- Google Chrome 浏览器——隐藏功能及快捷键
- Linux chmod +755和chmod +777 各是什么意思呢?
- python发邮件附件_python 发送带附件的邮件
- 从零开始的MySQL教程——上
- 红米手机4完整刷成开发版获得root权限的步骤
热门文章
- aspectJ框架的使用
- android SDK-25事件分发机制--源码正确解析
- 写个续集,填坑来了!关于“Thread.sleep(0)这一行‘看似无用’的代码”里面留下的坑。
- Freemarker导出复杂Excel图文教程
- java动态性,java动态性
- 比Worktile更适合软件研发的项目管理系统有哪些?10大项目管理系统对比
- idea爬虫爬取招聘信息,大数据
- 飞利浦SHL3565耳机套耳罩更换
- CSS-使用background实现四个角边框
- PHP 实现阿里云短信API对接(登录/注册参考)