Alert.Dialog 去掉 点击按钮自动关闭功能

2018-07-26  本文已影响44人  大象屁股
比较优雅的方法:
需要仔细看3点需要注意的地方:
        final AlertDialog addMemberDialog = 
               new AlertDialog.Builder(getContext())
               .setTitle("添加成员")
               .setView(dialogView)
               .setCancelable(false)
               //注意1:需要再这里设置监听为null,防止监听被替换;
               .setPositiveButton("确认", null)
               .setNegativeButton("取消", null)
               .create();
               //处理dialog自动关闭功能,需要重新设置点击事件
               //注意2:需要在dialog完全Show出来后再得到Button,不然则有可能获取到的Button为null;
               addMemberDialog.setOnShowListener(new DialogInterface.OnShowListener() {
               @Override
               public void onShow(DialogInterface dialogInterface) {
                 addMemberDialog.getButton(AlertDialog.BUTTON_POSITIVE)
                 .setOnClickListener(new View.OnClickListener() {
                    @Override
                public void onClick(View view) {
                    if (TextUtils.isEmpty(nameEt.getText())) {
                        ToastUtil.show("请输入名称");
                          return;
                      }
                    if (TextUtils.isEmpty(contentEt.getText())) {
                      ToastUtil.show("请输入描述");
                      return;
                    }
                     mAdapter.addData(new MemberEntity(), true);
                    addMemberDialog.dismiss();
                 }
             });
        }
    });
//注意3:show 需要放到最后,不然,show的速度过快导致无法设置onShowListener
addMemberDialog.show();
上一篇下一篇

猜你喜欢

热点阅读