私は奇妙な状況に直面しています。次のコードの断片を考えてみましょう:
(XML):
<EditText
android:id="@+vistoria/CNPJTomador"
android:inputType="number"
android:maxLength="18"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
ジャワ:
CNPJTomador = (EditText) findViewById(R.vistoria.CNPJTomador);
CNPJTomador.setOnFocusChangeListener(new View.OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus && !Validation.isCNPJ(CNPJTomador.getText().toString())) {
Toast.makeText(Checklist.this, "CNPJ inválido!", Toast.LENGTH_SHORT).show();
CNPJTomador.requestFocus();
}
else if (!hasFocus && Validation.isCNPJ(CNPJTomador.getText().toString()))
CNPJTomador.setText(Validation.printCNPJ(CNPJTomador.getText().toString()));
}
});
ユーザーが別のフィールドに移動すると、データの検証が行われ、エラーが発生した場合にフォーカスが戻されます。ただし、この時点でシステムはおかしくなります。集中力を取り戻すことは不可能です。別の EditText をクリックすると、次の図に示すように、両方のカーソル インジケーターが点滅します。
(出典:painelflex.com.br)
EditTextをクリックすると、他のEditTextのイベントがトリガーされます...完全に正気ではありません。
誰かが以前にこの状況に直面したことがありますか?