В моем приложении я показываю пользовательский AlertDialog
, чтобы пользователь мог ввести строку. Когда пользователь нажимает положительную кнопку, для проверки строки, предоставленной пользователем, должен быть AsyncTask
. Если проверка прошла успешно, я хочу, чтобы dismiss()
AlerDialog
, с другой стороны, если сбой проверки, я хочу, чтобы AlerDialog
оставался видимым для пользователя, чтобы внести необходимые исправления.Избегайте отклонения на support.v7.app.AlertDialog при нажатии кнопки
Проблема заключается в том, что я понятия не имею, как избежать AlerDialog
распускать после щелчка на любую из кнопок (я проверил со всеми из них).
Ни один из ответов, который я нашел здесь, как this question, кажется, работает.
Вот мой кусок кода
LayoutInflater inflater = getActivity().getLayoutInflater();
View dialogView = inflater.inflate(R.layout.generic_textinput_dialog, null);
final EditText editText = (EditText) dialogView.findViewById(R.id.generic_dialog_text_editText);
editText.setHint("Username");
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity());
dialogBuilder.setMessage("Share xxx");
dialogBuilder.setPositiveButton("Share", new DialogInterface.OnClickListener() {
@Override
public void onClick (DialogInterface dialog, int which) {
String sharingUser = editText.getText().toString();
if (!TextUtils.isEmpty(sharingUser)) {
doSomething();
}
actionMode.finish();
}
});
dialogBuilder.setNegativeButton("Cancel", null);
dialogBuilder.setView(dialogView);
dialogBuilder.show();
Любая идея, как решить эту проблему?
ПРИМЕЧАНИЯ
- Очевидно, я не используя
dialog.dismiss()
в любом месте даже при том, что диалог будет уволен после нажатия любой из кнопок. - Я использую API v23.1.1.
Если вы не хотите поведения AlertDialog, не используйте 'AlertDialog'. Создайте свой собственный диалог (или диалоговое действие). – CommonsWare
Думаю, это был бы лучший вариант. Я потратил слишком много времени на поиск решения вокруг «AlertDialog». – kazbeel