分享

android Preference之android:dependency

 w_hf的图书馆 2011-09-20
android Preference之android:dependency

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

 

1、Activity 代码如下:

 

 

Java代码 复制代码 收藏代码
  1. public class ConfigActivity extends PreferenceActivity {
  2. @Override
  3. public void onCreate(Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. addPreferencesFromResource(R.xml.config);
  6. }
  7. @Override
  8. public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
  9. Preference preference) {
  10. return super.onPreferenceTreeClick(preferenceScreen, preference);
  11. }
  12. }

 

 

2、config.xml代码如下:

 

Xml代码 复制代码 收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <PreferenceScreen
  3. xmlns:android="http://schemas./apk/res/android">
  4. <PreferenceCategory android:key="config" android:title="@string/config">
  5. <CheckBoxPreference android:key="config_anonymous"
  6. android:title="@string/config_anonymous"
  7. <strong><em>android:disableDependentsState="true"</em></strong>/>
  8. <EditTextPreference android:key="config_username"
  9. android:title="@string/config_username"
  10. <strong><em>android:dependency="config_anonymous"</em></strong>/>
  11. <EditTextPreference android:key="config_password"
  12. android:title="@string/config_password"
  13. <em><strong>android:dependency="config_anonymous"</strong></em>/>
  14. </PreferenceCategory>
  15. </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的值为真的时候,禁用依赖于该设置的其他设置项。

 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多