Эта проблема возникает только в версиях ниже ICS. У меня есть два EditTexts (имя пользователя и пароль). Первоначально оба фокуса являются ложными. При щелчке либо я сначала вызываю AlertDialog. Onclick отрицательной кнопки I clearfocus обоих EditTexts. Когда я очищаю фокус второго (пароля) textField, первый автоматически сбрасывается в true.ClearFocus возвращает true и триггеры onFocusChange
private void disclaimerDialog() {
dlgAlert = new AlertDialog.Builder(getActivity());
dlgAlert.setTitle(R.string.testApp);
dlgAlert.setCancelable(false);
dlgAlert.setPositiveButton("Accept", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mDisclaimerAccepted = true;
}
});
dlgAlert.setNegativeButton("Decline", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
hideKeyboard();
userNameEditText.clearFocus();
passwordEditText.clearFocus();
}
});
dlgAlert.show();
}
userNameEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
onFocusChange(View v, boolean hasFocus) {
if (!mDisclaimerAccepted && hasFocus) {
if (tempFileData != null) {
disclaimerDialog((EditText) view);
} else {
Toast.makeText(getActivity(), "You haven't accepted the disclaimer. Please check your internet connection", Toast.LENGTH_LONG).show();
}
}
}
});
passwordEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
onFocusChange(View v, boolean hasFocus) {
if (!mDisclaimerAccepted && hasFocus) {
if (tempFileData != null) {
disclaimerDialog((EditText) view);
} else {
Toast.makeText(getActivity(), "You haven't accepted the disclaimer. Please check your internet connection", Toast.LENGTH_LONG).show();
}
}
}
});
, когда я называю passwordEditText.ClearFocus() он возвращает истину на onFocusChange для userNameEditText. но не наоборот.
Я пробовал каждый блог и все вопросы о stackoverflow. Это проблема только в Gingerbread.