我有一个首选项屏幕,当启用某个设置时,它有几个必须是特定长度的字符串(字符数)。此外,所有字符串都是必需的。理想情况下,当用户启用此设置时,他们应该无法应用更改,直到所有字符串都以适当的长度提交。请注意,我不是在讨论最大长度,而是确切的字符数。
如何对用户强制执行这些规则?有没有办法通过内置的首选项控件执行此操作,还是必须构建自定义片段?
答案 0 :(得分:1)
Preference类具有onPreferenceChange侦听器。 public abstract boolean onPreferenceChange(Preference preference,Object newValue);
通过从此侦听器返回false,将不接受新值:
public boolean onPreferenceChange(Preference pref, Object newValue) {
if (pref == myStringPreferenceToValidate) {
final String newValueStr = (String) newValue;
if (newValueStr.length() != XX) {
// don't save it, not the correct length
return false;
}
return true;
}
}
点击此处查看完整文档:http://developer.android.com/reference/android/preference/Preference.OnPreferenceChangeListener.html