AlertDialog.Builder 的setPositiveButton不要导步处理
时间: 2023-07-11 21:47:03 浏览: 179
Android应用源码之alertDialog.zip
默认情况下,AlertDialog.Builder的setPositiveButton方法是异步处理的,也就是说,当用户点击确认按钮时,对话框会立即关闭,并且在后台执行确认操作后的代码。如果您不希望使用异步处理,可以尝试使用以下代码:
```
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("提示");
builder.setMessage("确定要执行这个操作吗?");
builder.setPositiveButton("确认", null);
builder.setNegativeButton("取消", null);
AlertDialog dialog = builder.create();
dialog.show();
Button btnPositive = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
btnPositive.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 在这里执行确认操作后的代码
dialog.dismiss();
}
});
```
在这个示例中,我们先创建一个对话框,然后获取对话框的确认按钮,并为其设置一个点击事件的监听器。在监听器中,我们可以执行确认操作后的代码,并手动关闭对话框。这样就可以实现不使用异步处理的效果。
需要注意的是,这种方法可能会引发一些线程同步的问题,因此不要在主线程中使用。同时,也需要注意一些其他的问题,比如对话框的样式和样式中的按钮是否支持手动关闭等。
阅读全文