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();