Android P 隐藏Settings一级菜单某个选项

比如:去掉Settings一级菜单中的“Storage”选项
方法1:
直接在AndroidManifest.xml屏蔽掉即可
vendor\mediatek\proprietary\packages\apps\MtkSettings\AndroidManifest.xml

   <!-- <activity
            android:name=".Settings$StorageDashboardActivity"
            android:label="@string/storage_settings"
            android:icon="@drawable/ic_homepage_storage"
            android:taskAffinity="com.android.settings"
            android:parentActivityName="Settings">
            <intent-filter android:priority="1">
                <action android:name="android.settings.INTERNAL_STORAGE_SETTINGS" />
                <action android:name="android.settings.MEMORY_CARD_SETTINGS" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.VOICE_LAUNCH" />
            </intent-filter>
            <intent-filter android:priority="5">
                <action android:name="com.android.settings.action.SETTINGS" />
            </intent-filter>
            <meta-data android:name="com.android.settings.category"
                android:value="com.android.settings.category.ia.homepage" />
            <meta-data android:name="com.android.settings.title"
                android:resource="@string/storage_usb_settings" />
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                android:value="com.android.settings.deviceinfo.StorageSettings" />
            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                android:value="true" />
        </activity> -->

方法2:
在Java文件中隐藏,无须修改AndroidManifest.xml
vendor\mediatek\proprietary\packages\apps\MtkSettings\src\com\android\settings\SettingsActivity.java

private void doUpdateTilesList() {
...
//add code 
somethingChanged = setTileEnabled(changedList, new ComponentName(packageName,
                        Settings.StorageDashboardActivity.class.getName()),
                false, isAdmin)
                || somethingChanged;
//end code     

注意:
1.StorageDashboardActivity要与AndroidManifest.xml中一致
2.false表示不显示。

如需隐藏其他选项,如果在SettingsActivity.java已定义,则只需把setTileEnabled方法中的第二个参数改为false即可,
否则需要像Storage一样,需要自己添加相应的code。
--------------------- 
作者:黑党 
来源:CSDN 
原文:https://blog.csdn.net/jydzm/article/details/88368590 
版权声明:本文为博主原创文章,转载请附上博文链接!

Android Studio中创建一个菜单管理应用涉及到几个关键步骤。首先,你需要确定菜单的类型,例如选项菜单、上下文菜单或弹出菜单。以下是创建一个基本的选项菜单的步骤: 1. 打开你的Android Studio项目。 2. 在`res`目录下创建一个新的XML文件,通常命名为`menu_main.xml`,这个文件将包含菜单项的定义。 3. 在`menu_main.xml`文件中,使用`<menu>`元素来定义你的菜单项,每个菜单项使用`<item>`标签表示,可以设置`android:id`、`android:title`等属性。 4. 打开你的Activity,比如`MainActivity.java`或`MainActivity.kt`。 5. 在Activity中重写`onCreateOptionsMenu(Menu menu)`方法,使用`MenuInflater`来加载你在`res/menu`目录下创建的菜单资源文件。 6. 如果需要为菜单项添加点击事件监听器,可以重写`onOptionsItemSelected(MenuItem item)`方法,并在其中使用`switch`语句处理不同菜单项的点击事件。 这里是一个简单的示例代码: `menu_main.xml` 示例代码: ```xml <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_settings" android:title="@string/action_settings" android:orderInCategory="100" android:showAsAction="never" /> <!-- 添加更多的菜单项 --> </menu> ``` `MainActivity.java` 示例代码: ```java @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { // 用户点击了设置菜单项 return true; } return super.onOptionsItemSelected(item); } ``` 在上述代码中,`R.menu.menu_main`是你的菜单资源文件的引用,你需要在`res/menu`目录下创建这个文件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值