android N 如何在Setting下添加一个按钮
2017-11-02 13:42
267 查看
在Settings下面添加菜单的方式有三种:
1、是继承Settings原有的父类Activity;2、是继承Settings原有的父类SettingsPreferenceFragment;
3、是以apk的形式去添加。
具体的添加步骤
Android 7.0添加Setting按钮是通过在Androidmanifest.xml中配置intent-filter的Action,然后对指定的Action进行搜索获取需要显示的列表项。下面我主要讲解前两种方式来添加按钮
1、在Settings下面添加一个按钮
Path : alps/packages/apps/Settings/AndroidManifest.xml
Code: <activity android:name="Settings$UserGuideActivity" android:label="@string/userguide" android:icon="@drawable/ic_settings_quickguide" <!--应用程序有一包名命名的任务栈 --> android:taskAffinity="com.android.settings" <!--在点击返回键回到Settings 而不是回到之前的task--> android:parentActivityName="Settings"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <!--默认的category --> <category android:name="android.intent.category.VOICE_LAUNCH" /> <!--默认的category --> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <!-- 1.SettingsActivity 通过该过滤器获取这个选项, 这个是必要有的,不然不会显示在设置菜单选项中。priority="6"表示选项的位置顺序数字由高到底排序 及同样的两个菜单,那个在前那个在后--> <intent-filter android:priority="6"> <action android:name="com.android.settings.action.SETTINGS" /> </intent-filter> <!-- 2.表示该菜单项在 personal的分类中 --> <meta-data android:name="com.android.settings.category" android:value="com.android.settings.category.personal" /> <!-- 3.表示启动的是一个fragment --> <meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.UserGuideSettings" /> <!--4.标示启动的是一个Activity--> <meta-data android:name="com.android.settings.ACTIVITY_ACTION" android:value="com.android.settings.UserGuideSettings" /> </activity>
2、添加相应的资源文件
Path : alps/packages/apps/Settings/res/values/strings.xml Code : <string name="userguide">UserGuide</string> 上面代码是android:label="@string/userguide" 的字符串资源 Path : alps/packages/apps/Settings/src/com/android/settings/Settings.java Code : public static class UserGuideActivity extends SettingsActivity { /* empty */ } 这个必须添加它与alps/packages/apps/Settings/AndroidManifest.xml文件中的<activity android:name="Settings$UserGuideActivity" 是对应的。当工程编译时它会自动生成UserGuideActivity.class文件。
3、添加相应的Fragment或者是Activity。
此文件要与alps/packages/apps/Settings/AndroidManifest.xml文件中的<meta-data android:name="com.android.settings.FRAGMENT_CLASS" android:value="com.android.settings.UserGuideSettings" />或者是 meta-data android:name="com.android.settings.ACTIVITY_ACTION" android:value="com.android.settings.UserGuideSettings" /> 对应。
我以我之前开发的用户手册为例,添加Fragment文件UserGuideSettings。
Code: package com.android.settings; import android.content.Intent; import android.view.View; import android.annotation.TargetApi; import android.os.Bundle; import android.preference.PreferenceFragment; public class UserGuideSettings extends PreferenceFragment{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = new Intent(); intent.setAction("com.usermanual"); startActivity(intent); } }
以上是前两种方式去添加按钮,第三种方式笔者没有试过,如果你感兴趣也可以尝试尝试。
相关文章推荐
- android中如何添加一个监听按钮,点击之后从一个activity跳转到另一个activity
- 用一个例子讲述如何向ASP.NET Web服务器按钮控件添加客户端脚本
- 如何向android的setting语言列表中添加一门语言
- 如何在Android系统源码中添加一个C项目?
- 如何在Android平板电脑POWER按钮菜单中添加休眠功能
- Flex中如何给一个按钮添加链接,点击链接打开一个网页呢? - FLEX学习笔记
- Android 如何添加一个apk使模拟器和真机都编译进去 m
- Cocos2d-x添加一个按钮弹出一个android对话框
- 如何添加一个Android服务
- 我想在datagrid中选择若干记录,再点击添加按钮,给别一个ACCESS表添加选择的记录,在VB中如何实现?
- 编写一个浮动按钮控件(如何给控件添加MouseOut事件)
- qt4:如何给按钮添加一个图标
- Android 如何添加一个apk使模拟器和真机都编译进去 m
- Android 如何添加一个新的时区
- 如何在POSTS编辑器中添加一个按钮,用来插入新的东西。
- 编写一个浮动按钮控件(如何给控件添加MouseOut事件)
- Flex中如何给一个按钮添加链接,点击链接打开一个网页呢?
- 如何实现在TreeView中添加一个删除的按钮
- Android 如何添加一个新的时区
- Flex中如何给一个按钮添加链接,点击链接打开一个网页呢?