Android EditTextPreference 小记
2010-11-05 00:56:18 来源:WEB开发网setPreferenceScreen(createPreferenceHierarchy());
}
private PreferenceScreen createPreferenceHierarchy() {
// Root
PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this);
// Dialog based preferences
PreferenceCategory dialogBasedPrefCat = new PreferenceCategory(this);
dialogBasedPrefCat.setTitle(R.string.tel);
root.addPreference(dialogBasedPrefCat);
// Edit text preference
final EditTextPreference editTextPref = new EditTextPreference(this);
editTextPref.setDialogTitle(R.string.tel);
editTextPref.setKey("SEYA_KEY");
editTextPref.setTitle(R.string.tel);
//get saved tel number and set it to current text view.
editTextPref.setSummary(editTextPref.getText());
dialogBasedPrefCat.addPreference(editTextPref);
editTextPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
editTextPref.setSummary(newValue.toString());
return true;
}
}
);
return root;
}
}
实际运行时却发现进入该页面的时候取不到之前存储的号码,但在弹出框里面却能够显示之前存储的号码。经过几次三番的调试,发现是取值时间的问题,把editTextPref.setSummary(editTextPref.getText());
放在dialogBasedPrefCat.addPreference(editTextPref);之后调用就好了。感觉是在 addPreference(...)之后editTextPref才获取到text的值的。正好手边有android sdk的源码,便分析了以下。分析后发现的确如此。
Tags:Android EditTextPreference 小记
编辑录入:coldstar [复制链接] [打 印]赞助商链接