如何在Android偏好设置中强制使用精确的字符串长度?

时间:2013-04-05 20:19:42

标签: android sharedpreferences edittextpreference

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

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

1 个答案:

答案 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