我试图显示一个包含加载动画的alert 对话框.单击最初显示的另一个alert 对话框后,需要显示alert 对话框.基本上,第一个对话框包含一个setPositive和setNegative按钮.setPositive事件会触发一个需要几秒钟的过程.我希望在加载过程开始时出现包含加载动画的第二个对话框.在加载对话框显示完成之前,我无法关闭第一个对话框.

//dialog that contains loading animation
    public class LoadingBox {
    Activity myActivity;
    AlertDialog dialog;

    LoadingBox(Activity activity){
        myActivity = activity;
    }
     void startLoadingDialog(){
        AlertDialog.Builder builder = new AlertDialog.Builder(myActivity);
        LayoutInflater inflater = myActivity.getLayoutInflater();
        builder.setView(inflater.inflate(R.layout.layout_dialog,null));
        builder.setCancelable(true);
        dialog = builder.create();
        dialog.show();
    }
    void dismissDialog(){
        dialog.dismiss();
    }
}

 

      
     new AlertDialog.Builder(SmsListActivity.this)
    
                            .setIcon(android.R.drawable.ic_dialog_alert)
                            .setTitle("Add To Transaction List")
                            .setMessage("Please note that this process might take long. Proceed?")
                            .setPositiveButton("yes", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    LoadingBox loadingBox = new LoadingBox(SmsListActivity.this);
    
                                    loadingBox.startLoadingDialog();
    
                                    addPendingToList();
                                    loadingBox.dismissDialog();
    
    
                                }
                            }).setNegativeButton("No",null).show();

推荐答案

要关闭此alert 对话框,应在setPositiveButton onClick中调用dialog.dismiss();

 new AlertDialog.Builder(SmsListActivity.this) .setIcon(android.R.drawable.ic_dialog_alert)
           .setTitle("Add To Transaction List")
           .setMessage("Please note that this process might take long. Proceed?")
           .setPositiveButton("yes", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {                    
        dialog.dismiss();
        LoadingBox loadingBox = new LoadingBox(SmsListActivity.this);
    loadingBox.startLoadingDialog();
    addPendingToList();
    loadingBox.dismissDialog();
    }
      }).setNegativeButton("No",null).show();

Android相关问答推荐

ENV变量在gradle进程中没有更新

当X为lambda函数时,如何避免Android Studio错误检测参数X未使用?

图像在Android Studio中显示,但不在设备中显示

如何处理穿戴构图上的长点击事件?

在Jetpack Compose中,如何判断屏幕是否已重新组合?

如何在Android Studio的LinearLayout中禁用阴影

Jetpack Compose:根据盒子中的最大视图固定宽度和高度

可组合函数无限地从视图模型获取值

面向Jetpack Compose的可组合放置问题

我的自定义小吃店不适合我的全宽屏幕尺寸

我怎样才能在多行 TextView 旁边有一个 ImageView 并且不超过父级的限制?

Electric Eel 后 Gradle 项目同步失败 | 2022.1.1更新

为卡片的上半部分添加一个边框,用圆角半径组合

为什么项目捕获对象给我在 Compose 中找不到参考

在compose中,为什么修改List元素的属性,LazyColumn不刷新

在 Google Play 中将用户从开放测试转移到生产的过程是怎样的?

如何修复 api 调用在浏览器中工作但在 android studio 中为 403

firebase-messaging和firebase-inappmessaging-display之间有什么区别?

复用 RecyclerView 适配器,避免不必要的 API 调用

Android:如何获取具有纬度和经度的位置的图像