Android Preference 揭秘

本文探讨了在Android应用中使用PreferenceActivity时遇到的问题:无法通过removePreference()方法成功删除Preference项。提供了一种解决方案,即通过PreferenceCategory直接移除指定的Preference。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我使用PreferenceActivity,请问如何删除Preference。这个不能正常运行
  1. Preference p = findPreference("grok");
  2. boolean worked = getPreferenceScreen().removePreference(p);
  3. // worked == false.
复制代码
preference被找到了,但是removePreference() 调用失败了,请问该如何做呢。我使用 preference.xml 文件如下:
  1. <PreferenceScreen
  2. xmlns:android="http://schemas.android.com/apk/res/android">

  3. <PreferenceCategory
  4. android:title="foo">

  5. <CheckBoxPreference
  6. android:key="grok" />

  7. ...
复制代码

XML:

  1. <PreferenceScreen
  2. xmlns:android="http://schemas.android.com/apk/res/android">

  3. <PreferenceCategory
  4. android:key="category_foo"
  5. android:title="foo">

  6. <CheckBoxPreference
  7. android:key="grok" />

  8. ...
复制代码

Code:

  1. Preference p = findPreference("grok");
  2. // removing Preference
  3. ((PreferenceGroup) findPreference("category_foo")).removePreference(p);

复制代码

原文链接http://stackoverflow.com/questions/9348544/class-extends-listactivity-whose-id-attribute-is-android-r-id-list

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值