OnFocusChangeListener を EditText に追加して、ユーザーが EditText ビューの外側をクリックしたり、タブを押したりしたときに値を検証できるようにしました。
EditText myEditText = (EditText) itemView.findViewById(R.id.myedittext);
myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
EditText editText = (EditText)view;
if (!hasFocus) {
validate(editText.getText().toString());
}
}
}
ただし、onFocusChange() メソッドは textChanged() メソッドのように呼び出されているようです。テキストフィールドに何かを入力するたびに呼び出されます。2.2 シミュレーターと自分のハードウェア デバイスの両方でこれを試してみましたが、どちらも同じように動作します。
OnFocusChangeListener がどのように機能するか、およびなぜそれが私のように機能するかについての洞察をいただければ幸いです。
前もって感謝します。