点击对话框上的Button不关闭对话框

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了点击对话框上的Button不关闭对话框相关的知识,希望对你有一定的参考价值。

参考技术A 1. 首先设置按钮的事件处理程序为null。

setPositiveButton(android.R.string.ok, null)

setNegativeButton(android.R.string.cancel, null)

2. 其次在dialog调用了create()或show()后调用setOnShowListener方法,在onShow中重新设置按钮的点击事件。

Button button = ((AlertDialog) dialog).getButton(AlertDialog.BUTTON_POSITIVE);

button.setOnClickListener(new View.OnClickListener()

            @Override

            public void onClick(View view)

                // TODO Do something            

            

        );

Android实现点击AlertDialog上按钮时不关闭对话框

开发过程中,有时候会有这样的需求:

点击某个按钮之后显示一个对话框,对话框上面有一个输入框,并且有“确认”和“取消”两个按钮。当用户点击确认按钮时,需要对输入框的内容进行判断。如果内容为空则不关闭对话框,并toast提示。

使用AlertDialog.Builder创建对话框时,可以使用builder.setNegativeButton和builder.setPositiveButton两个方法设置取消按钮和确认按钮的点击事件。然而问题在于,只要用户点击了确认按钮或者取消按钮,系统就会自动将对话框关闭。

解决此问题的方法是:

(1)使用builder.setPositiveButton设置确认按钮的文字,但是不添加监听。即:

builder.setPositiveButton(R.string.main_ok, null);

(2)得到AlertDialog对象:

AlertDialog alertDialog = builder.create();  
alertDialog.show();

(3)获取到对话框上的确认按钮,然后对该按钮添加普通的View.OnClickListener。在用户输入正确的时候,手动调用alertDialog.dismiss()关闭对话框。

alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
 String cardNum = cardNumET.getText().toString().trim();
 if (cardNum.length() == 0) {
     Utility.showToast(mActivity, "请输入编号");
     return;
 }
 //发送
 sendProfile(cardNum);
 alertDialog.dismiss();
    }
});

 

以上是关于点击对话框上的Button不关闭对话框的主要内容,如果未能解决你的问题,请参考以下文章

怎样才能关闭webQQ里已经添加的应用?

Feed Like对话框上的Facebook Like Button帖子消失了

asp网页中,如何实现点击按钮弹出对话框,然后点击“确定”关闭窗口,点击“取消”返回?尽快,非常感谢!

触摸屏幕时关闭进度对话框

进度对话框不会关闭

关闭引导 js 对话框而不点击 wpf