我使用此代码使用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;
        }
    });

}

怎么了?

===============>>#1 票数:1

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

如果您需要更改标题,当确定Clicked的dialog.You需要更新editTextPreference在标题OnPreferenceChangeListener

添加一个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;
    }
  };    

  ask by user3552780 translate from so

未解决问题?本站智能推荐: