Отклонить AlertDialog с EditText только тогда, когда он заполнен

У меня есть EditText в AlertDialog. Я хочу отклонить его только тогда, когда в EditText есть какой-то ввод, в противном случае отображается тост, предлагающий пользователю ввести данные.

В настоящее время, когда редактируемый текст содержит данные, диалоговое окно закрывается правильно. Также, когда текст редактирования пуст, отображается тост. Однако диалоговое окно по-прежнему закрывается, даже если EditText пуст и сообщение Toast отображается позже.

Я не хочу, чтобы ALertDialog отклонял, и EditText должен снова получить фокус после показа Toast.

Вот мой код:-

builder.setPositiveButton("Post", new DialogInterface.OnClickListener()
            {

                public void onClick(DialogInterface dialog, int id) 
                {

                    boolean worked = true;
                    postedComment = input1.getText().toString();

                    if(postedComment.length()==0 || postedComment=="" || postedComment.matches(""))
                    {

                        Toast.makeText(NewsDetails.this, "Please enter a comment.", Toast.LENGTH_LONG).show();
                        input1.findFocus();
                        worked = false;
                    }
                    else if(worked && postedComment!="")
                    {

                        dialog.dismiss();
                        pd = new ProgressDialog(NewsDetails.this);
                        pd.setMessage("Posting..");
                        pd.show();
                        pd.setCancelable(true);

                        PostComments(postedComment);
                    }
                }) 
.setCancelable(false);

            alert = builder.create();
            alert.setCanceledOnTouchOutside(true);

            alert.show();

1 ответ

Вам нужно написать собственный диалог для вашего требования. см. Пользовательский диалог с редактированием текста

Другие вопросы по тегам