AlertDialog被空的onClick驳回

时间:2015-05-07 14:44:16

标签: android android-alertdialog

下面的代码定义了一个带有2个按钮的AlertDialog。单击任一按钮会调用正确的onClick方法。实际上,每个方法只有一个Log语句,但单击其中任何一个都会导致对话框被解除。为什么呢?

AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setPositiveButton("Dismiss",
        new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.d("MyFragment", "Positive button");
            }
        }).setIcon(android.R.drawable.ic_dialog_info);

builder.setNeutralButton("Send Email",
        new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.d("MyFragment", "Neutral button");
            }
        }).setIcon(android.R.drawable.ic_dialog_info);
builder.setMessage("Some message");
builder.setCancelable(false);

Dialog dialog = builder.create();
dialog.setTitle("Details");
dialog.setCancelable(false);
dialog.show();

2 个答案:

答案 0 :(得分:1)

尝试添加此.table-menu { display: none; } tr:hover td .table-menu, tr:hover th .table-menu { display: inline; float: right; } .table-menu-active { display: inline; float: right; }

编辑:嗯,这不起作用,显然this就行了。 ;)

答案 1 :(得分:1)

该对话框被取消,因为这是它的默认行为。如果你希望它保留,你可以覆盖onShowListener并在那里设置相应的按钮点击监听器。

final AlertDialog dialog = builder.create();
    dialog.setOnShowListener(new DialogInterface.OnShowListener() {
        @Override
        public void onShow(DialogInterface d) {
            dialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(...);
        }
    });