欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2022-03-23 14:04:58
本文实例讲述了android实现点击alertdialog上按钮时不关闭对话框的方法。分享给大家供大家参考。具体如下: 开发过程中,有时候会有这样的需求: 点击某个按钮...

本文实例讲述了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();
    }
});

问题完美解决。

希望本文所述对大家的android程序设计有所帮助。