有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java动态设置EditTextPreference标题

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

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. # 1 楼答案

    问题是,您只在onPreferenceClick中更改标题,而不是在Preference Changed时更改标题(Ok是clickedDialog)。所以下次当你点击首选项时,onPreferenceClick会被调用,标题也会改变

    如果在对话框上确定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;
        }
      };