Android 7.1原生设置项删除

栏目: Android · 发布时间: 7年前

内容简介:从源码中看到Settings继承SettingsActivity,而SettingsActivity继承SettingsDrawerActivity,在SettingsDrawerActivity的onCreate方法中,我们看到调用了getDashboardCategories方法,代码:getDashboardCategories();//获取设置项列表setActionBar(toolbar);

从源码中看到Settings继承SettingsActivity,而SettingsActivity继承SettingsDrawerActivity,在SettingsDrawerActivity的onCreate方法中,我们看到调用了getDashboardCategories方法,代码:

getDashboardCategories();//获取设置项列表

setActionBar(toolbar);

mDrawerAdapter = new SettingsDrawerAdapter(this);

ListView listView = (ListView) findViewById(R.id.left_drawer);

listView.setAdapter(mDrawerAdapter);

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

public void onItemClick(Android.widget.AdapterView<?> parent, View view, int position,

long id) {

onTileClicked(mDrawerAdapter.getTile(position));

}

});

跟进到该方法的具体实现:

public List<DashboardCategory> getDashboardCategories() {

if (sDashboardCategories == null) {

sTileCache = new HashMap<>();

sConfigTracker = new InterestingConfigChanges();

// Apply initial current config.

boolean newC =sConfigTracker.applyNewConfig(getResources());

Log.d(TAG, "newC = " + newC);

sDashboardCategories = TileUtils.getCategories(this, sTileCache);//重点在这里

}

return sDashboardCategories;

}

跟进到getCategories方法:

private static final String EXTRA_SETTINGS_ACTION =

"com.android.settings.action.EXTRA_SETTINGS";

/**

* Same as #EXTRA_SETTINGS_ACTION but used for the platform Settings activities.

*/

private static final String SETTINGS_ACTION =

"com.android.settings.action.SETTINGS";

private static final String OPERATOR_SETTINGS =

"com.android.settings.OPERATOR_APPLICATION_SETTING";

private static final String OPERATOR_DEFAULT_CATEGORY =

"com.android.settings.category.wireless";

private static final String MANUFACTURER_SETTINGS =

"com.android.settings.MANUFACTURER_APPLICATION_SETTING";

private static final String MANUFACTURER_DEFAULT_CATEGORY =

"com.android.settings.category.device";

//以上是TileUtils.java定义的常量

public static List<DashboardCategory> getCategories(Context context,

HashMap<Pair<String, String>, Tile> cache) {

//......省略

for (UserHandle user : userManager.getUserProfiles()) {

// TODO: Needs much optimization, too many PM queries going on here.

if (user.getIdentifier() == ActivityManager.getCurrentUser()) {

// Only add Settings for this user.

getTilesForAction(context, user, SETTINGS_ACTION, cache, null, tiles, true);

getTilesForAction(context, user, OPERATOR_SETTINGS, cache,

OPERATOR_DEFAULT_CATEGORY, tiles, false);

getTilesForAction(context, user, MANUFACTURER_SETTINGS, cache,

MANUFACTURER_DEFAULT_CATEGORY, tiles, false);

}

if (setup) {

getTilesForAction(context, user, EXTRA_SETTINGS_ACTION, cache, null, tiles, false);

}

}

//......省略

return categories;

}

到这里我们就可以看得到,这是根据AndroidManifest.xml对activity及fragement的定义来划分设置项分类的。我们再看一下AndroidManifest.xml对各个activity及fragment的定义,拿个简单的来看看:

<activity android:name="Settings$AppMemoryUsageActivity"

android:label="@string/app_list_memory_use"

android:icon="@drawable/ic_settings_memory">

<intent-filter>

<action android:name="android.settings.APP_MEMORY_USAGE" />

<category android:name="android.intent.category.DEFAULT" />

</intent-filter>

<!-- <meta-data android:name="com.android.settings.category"

android:value="com.android.settings.category.device" /> -->

<meta-data android:name="com.android.settings.FRAGMENT_CLASS"

android:value="com.android.settings.applications.ProcessStatsUi" />

</activity>

这里我们只要前设置项分类去掉就能够删除掉这一设置项<meta-data android:name="com.android.settings.category" android:value="com.android.settings.category.device" />,同里如果我们要增加设置项,只要按不同的分类设置参数就行了。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2018-09/1544664.htm


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

蚁群算法原理及其应用

蚁群算法原理及其应用

段海滨 / 科学出版社 / 2005年2月1日 / 48.0

《蚁群算法原理及其应用(精装)》系统、深入地介绍了蚁群算法的原理及其应用,力图概括国内外在这一学术领域的最新研究进展。全书共包括10章,主要内容包括蚁群算法的思想起源、研究现状及机制原理;蚁群算法的复杂度分析;蚁群算法的收敛性证明;蚁群算法参数对其性能的影响;蚁群算法的参数选择原则;离散域和连续域蚁群算法的若干改进策略;蚁群算法在多个优化领域的典型应用;蚁群算法的硬件实现技术;蚁群算法与其他仿生优......一起来看看 《蚁群算法原理及其应用》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具