android N 如何在Setting下添加一个按钮
来源:互联网 发布:男友生日礼物 知乎 编辑:程序博客网 时间:2024/05/21 17:35
在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 N 如何在Setting下添加一个按钮
- android 如何在setting中添加HDMI选项
- 如何实现在TreeView中添加一个删除的按钮
- 安卓M版本如何在setting中的休眠模式下添加永不休眠功能?
- [FAQ08614]如何在setting中的休眠模式下添加永不休眠功能?
- 如何在tablewidget添加按钮?
- 如何在setting里面添加自己的值
- 如何在setting里面添加自己的值
- qt4:如何给按钮添加一个图标
- qt4:如何给按钮添加一个图标
- 如何给按钮添加一个位图图标!
- android中如何添加一个监听按钮,点击之后从一个activity跳转到另一个activity
- Win32编程---在窗体添加一个按钮
- 在GridView里添加一个功能按钮
- 在GridView里添加一个功能按钮
- 如何在KindEditor添加一行按钮
- 如何在html中添加分享按钮
- 有谁知道如何在长文本的工具栏里添加一个按钮吗?
- osgi插件运行不起来(bundle run fail)的问题
- 复制SVN文件夹,去除版本信息(绿色小图标)的方法
- 高精度计算2 + 22 + 222 + 2222...(做法2)
- Ctrlbox Project v2.3项目管理用户手册(四)——操作详解4.4
- LeetCode 刷题博客
- android N 如何在Setting下添加一个按钮
- 每日练习2017-10-30
- 【2017-10-31 & 2017-11-01】超忙,忙着可爱,忙着长大。
- linux中自动安装虚拟机的方法
- 2017-11-1
- leetcode题目分类
- PYTHON @classmethod
- HDU
- 安卓Chronometer计时器的简单使用