Android 7.1原生设置项删除

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

内容简介:从源码中看到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


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

查看所有标签

猜你喜欢:

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

勇敢新世界‧互聯網罪與罰

勇敢新世界‧互聯網罪與罰

許煜、劉細良 / CUP / 2005 / $48

我天天上網數小時,為的是要在節目裡面介紹世界的最新動態,尤其是網絡這個世界本身日新月異的變化。所以我不可能不注意到BT、共享軟件、 Wikipedia、網絡監管等各種影響政治、社會、經濟及文化的重要網絡現象。但是我發現市面上一直沒有一本內容充實全面,資料切時的中文參考書,直到這本《互聯網罪與罰》。而且,最大的驚喜是它易讀好看,簡直就像故事書。 梁文道 鳳凰衛視 《網羅天下......一起来看看 《勇敢新世界‧互聯網罪與罰》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具