Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 显示未执行的对话框代码_Android_Android Alertdialog_Android Dialog - Fatal编程技术网

Android 显示未执行的对话框代码

Android 显示未执行的对话框代码,android,android-alertdialog,android-dialog,Android,Android Alertdialog,Android Dialog,我有一个按钮,点击时会显示一个对话框,但代码似乎没有执行 以下是onclick代码: profile.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Log.v("--", "dasd"); displayPopup(); } }

我有一个按钮,点击时会显示一个对话框,但代码似乎没有执行

以下是onclick代码:

profile.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.v("--", "dasd");
                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();
                    }
                });
    }

Log.v正在执行,但displayPopup未执行。有人能告诉我为什么会发生这种情况吗?你忘了builderSingle.show你忘了builderSingle.show你需要创建并显示你的对话框。将此添加到displayPopup方法的末尾:

builderSingle.create.show

编辑:正如Alex所说,builderSingle.show也做同样的事情。如果您调用create,那么您就有了一个对话框的句柄,可以在以后调用show。从以下文件:

使用提供给此生成器的参数创建AlertDialog。它不显示对话框。这允许用户在显示对话框之前进行任何额外的处理。如果您没有任何其他处理要做,并且希望创建和显示该处理,请使用show


您需要创建并显示对话框。将此添加到displayPopup方法的末尾:

builderSingle.create.show

编辑:正如Alex所说,builderSingle.show也做同样的事情。如果您调用create,那么您就有了一个对话框的句柄,可以在以后调用show。从以下文件:

使用提供给此生成器的参数创建AlertDialog。它不显示对话框。这允许用户在显示对话框之前进行任何额外的处理。如果您没有任何其他处理要做,并且希望创建和显示该处理,请使用show


创造不是必需的,我只是在读了你的答案后才知道这一点。这种方式在我看到的第一个对话框代码中就已经出现了,而且这种方式变成了肌肉记忆。谢谢你的帮助,但是现在它创建了一个空对话框。你知道为什么会发生这种情况吗?你从来没有指定过内容——特别是,你在创建适配器时没有调用singleBuilder.setAdapter.create不是必需的Indeed,我只是在阅读了你的答案后了解到了这一点。这种方式在我看到的第一个对话框代码中就已经出现了,而且这种方式变成了肌肉记忆。谢谢你的帮助,但是现在它创建了一个空对话框。你知道为什么会发生这种情况吗?你从来没有指定过内容——特别是,你在创建适配器时没有调用singleBuilder.setAdapter。