Проверка предпочтений Android EditText

Я использую Edittextpreference как одно из предпочтений в разделе настроек. Я хочу проверить это edittextpreference, когда пользователь вводит данные в него и нажимает ok; перед сохранением в sharedpreference.

Я пытаюсь сделать что-то подобное, но это сначала сохраняет приоритет.

editTextPreference
            .setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
                @Override
                public boolean onPreferenceChange(Preference preference,
                        Object newValue) {
                    if (((newValue.toString().length() == 15) {
                          // save preference only if length is equal to 15
                     }
              })
               });

может кто-нибудь подскажет мне, как проверить edittextpreference, прежде чем он будет сохранен в sharedpreference, чтобы я мог решить, хочу ли я его сохранить или нет.

Ответ 1

В соответствии с документом здесь

Вызывается при изменении пользователем предпочтения. Это называется перед тем, как состояние Preference будет обновлено и состояние сохраняется.

И он возвращает True, чтобы обновить состояние Preference с помощью нового значение.

Итак, вы можете сделать следующее

      editTextPreference
            .setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
                @Override
                public boolean onPreferenceChange(Preference preference,
                        Object newValue) {
                    if (((newValue.toString().length() == 15) {
                          //
                          return true;
                     }
                     else{
                          // invalid you can show invalid message
                          return false;
                     }
              })
       });