java - 如何在进一步处理之前关闭对话框?

标签 java android android-alertdialog

我有一个alertDialog,它接受输入以进行进一步处理。因为处理可能需要一段时间,所以我想关闭 alertDialog 并在执行 process 方法期间显示图像。问题在于 process() 在对话框实际关闭之前被调用。因此,在加载期间,程序基本上“挂起”,显示警报对话框,直到 process() 完成,之后图像会显示一瞬间,从而违背了其目的。

我尝试在process()方法中显示图像,并尝试在同步方法中执行dialog.dismiss(),但结果保持不变。

alertDialogBuilder.setCancelable(true).setPositiveButton("OK", new DialogInterface.OnClickListener() {
     public void onClick(DialogInterface dialog, int id) {

         final String input = et.getText().toString();

         dialog.dismiss(); //finish this first

         process(input); //then do this

    }
});

 AlertDialog alertDialog = alertDialogBuilder.create();

 alertDialog.show();

最佳答案

您可以使用

 alertDialogBuilder.setOnDismissListener(new 
    DialogInterface.OnDismissListener() {
            @Override
            public void onDismiss(DialogInterface dialogInterface) {
                //do work on dismiss of dialog
            }
    });

因此,您可以在本部分中显示图像并开始您的过程。在进程结束时添加回调监听器,并使用回调使进程结束时图像不可见。

关于java - 如何在进一步处理之前关闭对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46990871/

相关文章:

android - 在 AlertDialog 中更改 ListView 的字体大小

java - 在几个不相关的类中使用的 Java 中在哪里定义常量

java - libGDX,如何从InputProcessor获取符号?

java - 归并排序java实现错误

java - 音频延迟-Java程序到Android程序

java - 使用 MVVM 进行 Android UI 测试

java - android开发-注册和取消注册onClick,无法解析方法

java - map View 的 AlertDialog.Builder 的默认上下文?

android - AlertDialog - 显示自定义类的软键盘不起作用

java - JNA 库在 Win32 下重新加载挂起