您现在的位置是:首页 > 正文

android Preference之android:dependency

2024-02-01 03:29:05阅读 2

在开发软件设置界面的时候,我们可以采用android系统提供的PreferenceActivity来实现,下面给出一个简单的例子:

 

1、Activity 代码如下:

 

 

public class ConfigActivity extends PreferenceActivity {
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.config);
    }
    
    @Override
    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
    		Preference preference) {
    	return super.onPreferenceTreeClick(preferenceScreen, preference);
    }
}

 

 

2、config.xml代码如下:

 

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
  xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory android:key="config" android:title="@string/config">
        <CheckBoxPreference android:key="config_anonymous" 
        	android:title="@string/config_anonymous"
        	android:disableDependentsState="true"/>
        <EditTextPreference android:key="config_username" 
        	android:title="@string/config_username"
        	android:dependency="config_anonymous"/>
        <EditTextPreference android:key="config_password" 
        	android:title="@string/config_password"
        	android:dependency="config_anonymous"/>
   	</PreferenceCategory>
</PreferenceScreen>
 

3、实现的效果:

 


(解释:当上面的checkbox值为真,禁用下面的用户名和密码设置,否则开启下面的设置项)

 

4、关键点:

注意上面代码中的黑色粗体代码,android:dependency="config_anonymous" 这个属性指定该设置项依赖于前面key="config_anonymous" 的CheckBoxPreference的值,

如果config_anonymous的值为真(即选中状态),则config_username和config_password可用,即enabled的,否则为disabled。

但是,现在的逻辑刚好相反,即config_anonymous的值为真的时候,需要禁用下面的config_username和config_password设置项。要实现这个就需要在CheckBoxPreference上设置了,

即添加android:disableDependentsState="true"这个属性,这个属性的意思是,当CheckBoxPreference的值为真的时候,禁用依赖于该设置的其他设置项。

 

 

 

 

 

 

 

 

网站文章

  • 衡水科技工程学校计算机房照片,衡水科技工程学校数字化校园建设经验

    衡水科技工程学校计算机房照片,衡水科技工程学校数字化校园建设经验

    S cie n ce&Te hc no l o y Vgis i o n科 技视 P.-科技探索 争鸣衡水科技工学程校字化校数园建设经验广彦杜衡(水科技程工校学。河北衡水 0 5 30 0 0)摘【要】根据校学发的展划和各规业专的特,色通“过四一个”实现了数来字化建校设,一张网:校网、一个平园台:数校园平字、台一个库:教学资源、一库制套度:各网项化络管理制度。建在过设中我校程探索出条...

    2024-02-01 03:28:35
  • 【编程实践】:Java基础+MarkDown文件解析器

    个人博客系统正在开发中。。。欢迎路过的java新手一起交流。。。欢迎大佬指正。。。本文主要描述文章发布过程中MarkDown文件的解析过程。MarkDown文件有以下语法说明语法格式标题标题采用#+#...

    2024-02-01 03:28:26
  • js总结篇之—ajax (看完你就学会整个js)

    1.AJAX技术 *ajax是浏览器提供的一系列api,可供javascript调用,实现代码控制请求与相应,实现网络2编程 2.快速上手 let xhr = new XMLHttpRequest()...

    2024-02-01 03:28:19
  • c#:使用网易邮箱账号发送电子邮件

    c#:使用网易邮箱账号发送电子邮件

    环境: window10 vs2019 16.5.5 .netcore 3.1 .netframework 4.5 控制台程序 一、准备网易邮箱账号 1.1 注册账户 1.2 开启smtp服务 二、编...

    2024-02-01 03:27:49
  • 轻松获得微信openid

    function test() { header("Content-type: text/html; charset=utf-8"); $weixinConfig=parent::getWeixinConfigData(); $APPID=$weixinConfig['appid']; $secret=$weixinCon...

    2024-02-01 03:27:41
  • 解决ubuntu挂载NTFS磁盘时出现input/output error

    Error mounting /dev/sdc1 at /media/cxm/大白菜U盘: Command-line `mount -t &quot;ntfs&quot; -o &quot;uhelp...

    2024-02-01 03:27:34
  • Python的一,二,三维数组中根据下标取得对应数值

    备注 使用语言 python 使用库 numpy 使用pycharm显示效果 : 左边中括号的数目即数组的维度 一维数组 一维数组不需要多个下标,因为只有一个维度,所以使用一个下标即可 # 使用了numpy库构建 import numpy as np a = np.arange(24) print(a) 结果为 [ 0 1 2 3 4 5 6 7 8 9 10 11] ...

    2024-02-01 03:27:06
  • 乐观锁解决并发下单问题和事务隔离级别的修改

    一.乐观锁结果并发下单问题 1.查询商品 查询原有库存 查询原有销量 2.以商品和原有库存作为条件,用result接收结果,result=0,表示被修改,下单失败,若不等于零表示原始库存中途未被修改,...

    2024-02-01 03:26:59
  • 论文阅读-面向图像自动语句标注的注意力反馈模型

    论文阅读-面向图像自动语句标注的注意力反馈模型

    文献:吕凡,胡伏原,张艳宁,夏振平,盛胜利.面向图像自动语句标注的注意力反馈模型[J].计算机辅助设计与图形学学报,2019,31(07):1122-1129.主要工作在传统注意力基础上引入反馈机制,利用关注信息的图像特征指导文本生成,借助文本中的关注信息进一步修正图像中的关注区域,解决了传统注意力机制的注意分散问题。技术两种图像语义提取常用技术与ATTENTION结合1.基于全图:...

    2024-02-01 03:26:42
  • (一)u-boot简介

    u-boot简介简介u-boot官方资料简介 U-Boot 是一个主要用于嵌入式系统的引导加载程序,可以支持多种不同的计算机系统结构,包括PPC、ARM、AVR32、MIPS、x86、68k、Nios...

    2024-02-01 03:26:25