0

我有一个首选项屏幕,当启用设置时,有几个字符串必须是特定长度(字符数)。此外,所有字符串都是必需的。理想情况下,当用户启用此设置时,他们应该无法应用更改,直到所有字符串都以适当的长度归档。请注意,我不是在谈论最大长度,而是确切的字符数。

如何对用户强制执行这些规则?有没有办法通过内置的首选项控件来做到这一点,还是我必须构建一个自定义片段?

4

1 回答 1

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

于 2013-04-05T20:40:59.457 回答