java - 动态设置 EditTextPreference 标题

标签 java android android-fragments sharedpreferences

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

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;
        }
    });

}

怎么了?

最佳答案

问题是您仅在 onPreferenceClick 中更改标题,而不是在 Preference Changed 中更改标题(确定是 clickedDialog)。因此,下次当您单击首选项时,将调用 onPreferenceClick 并且标题会更改。

如果在对话框中Ok Clicked时需要更改标题,需要更新OnPreferenceChangeListener中的editTextPreference标题

添加一个 OnPreferenceChangeListener 并像这样更新 EditTextPreference 标题

 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;
    }
  };    

关于java - 动态设置 EditTextPreference 标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23176268/

相关文章:

java - android Map错误膨胀类 fragment

android - 无法将多个 fragment 添加到 LinearLayout

java - 如何处理自定义HandlerMethodArgumentResolver抛出的异常?

java - 配置适用于 Java 的 AWS 开发工具包

java - 爬虫引擎架构——Java/Perl整合

java - 如何实现异步处理

java - 如何停止模型类中的自动排序字段?

java - 简单的计算器应用程序不断崩溃

android - Dagger 2 : Cannot resolve symbol for dagger component

java - Android- fragment 内的动画