首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到CheckBoxPreference依赖项错误

找不到CheckBoxPreference依赖项错误
EN

Stack Overflow用户
提问于 2012-02-20 15:03:03
回答 6查看 2.3K关注 0票数 4

我有这个CheckBoxPreference

代码语言:javascript
复制
CheckBoxPreference sendToEmailPref = new CheckBoxPreference(this);
sendToEmailPref.setTitle("Send To Email");
sendToEmailPref.setDependency("emailList");

我想设置它对一个键的依赖性" emailList“emailList是一个自定义的构建首选项,它将电子邮件地址存储为字符串。

然而,我得到了这个错误

代码语言:javascript
复制
Caused by: java.lang.IllegalStateException: Dependency not found.....
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-02-25 00:59:28

代码语言:javascript
复制
final CheckBoxPreference sendImageToEmail = (CheckBoxPreference) findPreference("send_image_to_email");
listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(
    SharedPreferences sharedPreferences, String key) {
        if (key.equals("emailList")) {
            String emails = sharedPreferences
                    .getString("emailList", "");
            if (emails.equals("")) {
                sendImageToEmail.setChecked(false);

我使用OnSharedPreferenceChangeListener来做这件事。

票数 1
EN

Stack Overflow用户

发布于 2012-08-03 15:21:32

你应该在调用完addPreference之后调用setDependency,它对我来说很好用!

票数 10
EN

Stack Overflow用户

发布于 2012-02-23 16:08:45

在onCreate中将.setDependency()设置为紧跟在setPreferenceScreen()之后。应该能行得通。

代码语言:javascript
复制
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setPreferenceScreen(createPreferenceHierarchy());
    getPreferenceScreen().findPreference("_key_of_depend_to_").setDependency("emailList");
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9357349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档