我使用此代码通过 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
中更改标题(确定是 clicked
在 Dialog
)。因此,下次当您单击首选项时,将调用 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/