首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态设置EditTextPreference标题

动态设置EditTextPreference标题
EN

Stack Overflow用户
提问于 2014-04-20 06:24:50
回答 1查看 654关注 0票数 2

我使用此代码通过getText()方法从输入文本设置editTextPreference标题。问题是,当我单击"ok“时,它不会更改标题,但如果我再次单击editText`并单击"ok",它就会应用标题。

代码语言:javascript
复制
public void handleTEST(){
    final EditTextPreference pref = (EditTextPreference)findPreference("test");     
    pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener(){   
        @Override
        public boolean onPreferenceClick(Preference preference) {
            pref.setTitle(pref.getText());

            return true;
        }
    });

}

怎么了?

EN

回答 1

Stack Overflow用户

发布于 2014-04-21 12:33:04

问题是您只在onPreferenceClick中更改标题,而不是在Preference Changed时更改(Dialog中的Ok is clicked )。因此,下次单击preference item时,将调用onPreferenceClick并更改标题。

如果在dialog.You上Ok Clicked时需要更改标题,则需要在OnPreferenceChangeListener中更新editTextPreference标题

添加OnPreferenceChangeListener并更新EditTextPreference标题,如下所示

代码语言:javascript
复制
 private static Preference.OnPreferenceChangeListener onPreferenceChangeListener 
                        = new Preference.OnPreferenceChangeListener() {
    @Override
    public boolean onPreferenceChange(Preference preference, Object value) {
        String stringValue = value.toString();

        if(preference instanceof EditTextPreference) {
            // update the title
            preference.setTitle(stringValue);

        }
        return true;
    }
  };    
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23176268

复制
相关文章

相似问题

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