Android 8.1 设置settings中添加一个一级菜单item,并屏蔽点击事件,summary可以动态更改

本文介绍了如何在Android 8.1的设置中添加一个一级菜单item,同时屏蔽其点击事件。步骤包括在AndroidManifest.xml设置入口、在Settings.java创建内部类、在SettingsActivity和SettingsGateway中处理、在DashboardAdapter中屏蔽点击,以及在DashboardFeatureProviderImpl中阻止item打开。若要动态更新summary,需创建LoginUserFragment并实现在fragment中修改。
摘要由CSDN通过智能技术生成

一、在设置的清单文件AndroidManifest.xml 添加入口

 <!--添加用户item  20210207 -->
<!--android:priority="9"加这个属性与位置顺序有关  值越大在分组中越靠前-->
        <activity android:name="Settings$LoginUserSettingsActivity"
            android:label="@string/login_user"
            android:icon="@drawable/ic_settings_accessibility"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:taskAffinity="">
            <intent-filter android:priority="12">
                <action android:name="com.android.settings.action.SETTINGS"/>
            </intent-filter>
<!--添加此meta-data 才会在一级菜单中显示,与电池,声音等设置项同级->
            <meta-data android:name="com.android.settings.category"
                android:value="com.android.settings.category.ia.homepage"/>
<!--FRAGMENT_CLASS表示 实现类是一个fragment,value指向具体的fragment-->
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                android:value="com.android.settings.loginuser.LoginUserFragment" />
            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                android:value="true" />

        </activity>

二、在Settings.java 添加内部类

public static class LoginUserSettingsActivity extends SettingsActivity { /* empty */ }// 20210207 添加用户item

三、在SettingsActivity.java 中的doUpdateTilesList()方法中

setTileEnabled(new ComponentName(packageName,
                            Settings.LoginUserSettingsActivity.class.getName()),
                    OptimaUtil.isWorkMode(this), isAdmin);//OptimaUtil.isWorkMode(this)  为ture显示,false不显示

四、在SettingsGateway.java的

private static final String[] ENTRY_FRAGMENTS = {
	...
	LoginUserFragment.class.getName(),// 20210207 添加用户item
}

private static final String[] SETTINGS_FOR_RESTRICTED = {
	...
	Settings.LoginUserSettingsActivity.class.getName(),// 20210207 添加用户item
}

五、屏蔽一级菜单item的点击事件,在一级菜单的DashboardAdapter.java中作处理


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值