Я должен сделать контроль ввода формы на серии EditTexts. Я использую OnFocusChangeListeners для инициирования проверки после пользовательских типов в каждого, но это не ведет себя, как желаемый для последнего EditText.
Если я нажимаю на кнопку "Done" при вводе в заключительный EditText затем, InputMethod разъединяется, но технически, никогда сфокусируйтесь не теряется на EditText (и таким образом, проверка никогда не происходит).
Каково лучшее решение?
Я должен контролировать, когда InputMethod развязывает от каждого EditText скорее чем, когда фокус изменяется? Если так, как?
Почему бы вам не использовать TextWatcher
?
Поскольку у вас есть несколько блоков EditText
, которые нужно проверить, я думаю вам подойдет следующее:
android.text.TextWatcher
interface txt1.addTextChangedListener(this);
txt2.addTextChangedListener(this);
txt3.addTextChangedListener(this);
afterTextChanged (Editable s)
следующим образом @Override
public void afterTextChanged(Editable s) {
// validation code goes here
}
Метод Editable s
на самом деле не помогает определить, какой текст в поле EditText изменяется. Но вы можете напрямую проверить содержимое полей EditText, таких как
String txt1String = txt1.getText().toString();
// Validate txt1String
, тем же методом. Я надеюсь, что все понятно, и если да, то это поможет! :)
РЕДАКТИРОВАТЬ: Для более чистого подхода обратитесь к ответу Кристофера Перри ниже.