我面临着一个奇怪的情况。考虑下一段代码:
(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 的事件......这完全是疯了。
以前有人遇到过这种情况吗?