Диалоговое окно код не выполняется


У меня есть кнопка, которая при нажатии должна отображать диалоговое окно, но кажется, что код не выполняется.

Вот код onclick:

profile.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.v("--", "dasd");
                displayPopup();
            }
        });

И функция displayPopup

private void displayPopup() {
        AlertDialog.Builder builderSingle = new AlertDialog.Builder(this);
        builderSingle.setIcon(R.drawable.ic_launcher);
        builderSingle.setTitle("Select option:");
        final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
                this, android.R.layout.select_dialog_singlechoice);
        arrayAdapter.add("Call " + employee.getName());
        arrayAdapter.add("Send SMS to " + employee.getName());
        builderSingle.setNegativeButton("Cancel",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
    }

Журнал.v выполняется, а displayPopup () - нет. Может ли кто-нибудь сказать мне, почему это происходит

2 2

2 ответа:

Вам нужно создать и показать свой диалог. Добавьте это в конец вашего метода displayPopup:

builderSingle.create().show();

Редактировать: как сказал Алекс, builderSingle.show() делает то же самое. Если вы вызываете create(), то у вас есть дескриптор диалогового окна, который вы можете вызвать show позже. Из документов для Builder.create():

Создает AlertDialog с аргументами, предоставленными этому построителю. Он не показывает() диалог. Это позволяет пользователю выполнить дополнительную обработку перед отображением диалогового окна. Используйте show (), Если у вас нет другой обработки и вы хотите, чтобы она была создана и отображена.

Ты забыл builderSingle.show()