Я хочу, чтобы мое диалоговое окно оповещения сработало и отображало сообщение об ошибке - PullRequest
0 голосов
/ 17 января 2020

Я хочу, чтобы мое диалоговое окно с предупреждением срабатывало и продолжало отображать сообщение об ошибке, если пользователь оставляет поле имени пустым и нажимает кнопку ОК, но мое диалоговое окно исчезает, даже если пользователь ничего не заполняет и нажимает кнопку ОК. Вот мой код. Пожалуйста, предложите мне исправления, которые мне нужно сделать.

    save2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                final dbmanager db= new  dbmanager(cgpa3.this);

                    final AlertDialog.Builder alert = new AlertDialog.Builder(cgpa3.this);

//                            alert.setTitle("Enter a name");
                alert.setMessage("Enter student Name");

// Set an EditText view to get user input
                final EditText input = new EditText(cgpa3.this);
                alert.setView(input);


                    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                            String value = input.getText().toString();
                            if(value.isEmpty()){
                                Animation shake = AnimationUtils.loadAnimation(cgpa3.this, R.anim.shake);
                                input.startAnimation(shake);
                                input.setError("Please enter student name");

                            }
                            else
                            {db.addRecord1(value,textView39.getText(),textView40.getText(),no_of_sem);

                            }

                        }
                    });

                    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                            // Canceled.
                        }
                    });

                    alert.show();

            };

        });

Ответы [ 2 ]

1 голос
/ 17 января 2020

используйте это,

       final EditText editText;

            final AlertDialog.Builder alert = new AlertDialog.Builder(DemoActivity.this);
                       alert.setTitle("Enter a name");
             alert.setMessage("Enter student Name");
            alert.setCancelable(false);


            editText = new EditText(DemoActivity.this);
            alert.setView(editText);
            alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {

                }
            });

            alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {

                }
            });

            final AlertDialog dialogs  = alert.create();
            dialogs.show();

            dialogs.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    String value = editText.getText().toString();
                    if (value.isEmpty()) {
                        editText.setError("Please enter student name");
                    }
                    else{
                        dialogs.dismiss();
                    }

                }
            });

            dialogs.getButton(AlertDialog.BUTTON_NEGATIVE).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                    dialogs.dismiss();
                }
            });
0 голосов
/ 17 января 2020
if(TextUtils.isEmpty(input.getText().toString().trim())){
 Animation shake = AnimationUtils.loadAnimation(cgpa3.this, R.anim.shake);
                            input.startAnimation(shake);
                            input.setError("Please enter student name");
}
else{
db.addRecord1(value,textView39.getText(),textView40.getText(),no_of_sem);
}

если работает, пожалуйста

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...