微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

警报对话框隐藏进度条

如何解决警报对话框隐藏进度条

我是 android studio 的新手,但有一个我无法解决的问题。我在论坛中搜索但没有找到(或不理解)修复。

我想要的是:使用对话框警告框(是/否)请求用户许可以读取 csv 文件,当用户单击是时,对话框关闭并使用进度条读取 csv 文件

>

我得到了什么:当我单击“是”按钮时,对话框警告框保持打开状态,我看不到进度条,因为它在警告对话框后面。阅读 CSV 文件后,警报对话框关闭,我根本没有看到进度条。

代码如下:

private void AskUserConfirmation(){
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setCancelable(true);
    builder.setTitle("Fichier");
    builder.setMessage("Voulez vous ouvrir le fichier ?");
    builder.setPositiveButton("OUI",new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog,int which) {
                    //Read file
                    ReadCSVFile();

                }
            });
    builder.setNegativeButton("NON",int which) {
                }
    });

    AlertDialog dialog = builder.create();
    dialog.show();
}

我试过了:

        builder.setPositiveButton("OUI",int which) {
                    dialog.cancel();
                    //Read file
                    ReadCSVFile();

                }
            });

但是没有读取文件,也没有显示进度条。

所以我尝试了这个:

        builder.setPositiveButton("OUI",int which) {
                    //Read file
                    ReadCSVFile();
                    dialog.cancel();
                }
            });

但同样的问题,文件被读取但警告对话框没有关闭

我需要关闭警报对话框,然后读取文件,然后显示进度条。

有什么想法吗? 感谢您的帮助!

米卡

解决方法

尝试用 dialog.cancel() 替换 dialog.dismiss()

另外,在关闭对话框之前阅读文件:

builder.setPositiveButton("OUI",new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog,int which) {
                // Reading the file:
                ReadCSVFile();
                dialog.dismiss();
            }
        });
,

在线程中调用 ReadCSVFile。您编写它的方式是在 UI 线程上执行它并阻止关闭对话框。

   builder.setPositiveButton("OUI",int which) {

                dialog.cancel();

                Runnable t = new Runnable()
                {    
                  @Override
                  public void run()
                  {    
                    ReadCSVFile();
                  }    
                };   
                new Thread(t).start();
            }
        });
,

当你点击肯定按钮而不写dialog.dismiss()dialog.cancel()时,对话框应该自动关闭。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。