Добавление EditTexts в диалоговое окно предупреждения - пропущен код? - PullRequest
0 голосов
/ 03 октября 2019

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

final AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
                    alert.setTitle("Hi there!");
                    alert.setMessage("Got a question? we'd love to hear from you. Send us a message and we'll respond ASAP");

                    LinearLayout layout = new LinearLayout(MainActivity.this);
                    layout.setOrientation(LinearLayout.VERTICAL);

                    final EditText titleBox = new EditText(MainActivity.this);
                    titleBox.setHint("Title");
                    layout.addView(titleBox); 

                    final EditText descriptionBox = new EditText(MainActivity.this);
                    descriptionBox.setHint("Description");
                    layout.addView(descriptionBox); 

                    alert.setView(layout);
                    alert.setPositiveButton("SEND", new DialogInterface.OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            // sending the mail from user to harel's mail address
                            Intent i = new Intent(Intent.ACTION_SEND);
                            i.setType("message/rfc822");
                            i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"<mail here>"});
                            i.putExtra(Intent.EXTRA_SUBJECT, titleBox.getText());
                            i.putExtra(Intent.EXTRA_TEXT   , descriptionBox.getText());
                            try {
                                startActivity(Intent.createChooser(i, "Send mail..."));
                            } catch (android.content.ActivityNotFoundException ex) {
                                Toast.makeText(MainActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
                            }
                        }
                    });

                    AlertDialog alert1 = alert.create();
                    alert1.show();

1 Ответ

0 голосов
/ 03 октября 2019

Код, который вы указали в вопросе, работает нормально (отсутствуют диалоговые кнопки). Попробуйте проверить, настроили ли вы прослушиватель щелчков на кнопке (элементе), чтобы открыть диалоговое окно, как показано в примере ниже:

buttonExample.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //TODO - your dialog code here.
        }
    });

И небольшой совет: вам не нужно создавать alert1. Просто измените последние строки с помощью этого кода:

alert.create();
alert.show();

Надеюсь, это поможет вам!

...