问题遇到的现象和发生背景
写了一个利用ProgressDialogUtil.showProgressDialog(MainActivity.this)以及ProgressDialogUtil.dismiss();可以显示及隐藏ProgressDialog的方法,希望可以在运算时跳出等待界面,但是我实际使用时程序会直接运算并显示结果,在等待时并不会跳出AlertDialog,请问是什么原因
问题相关代码,请勿粘贴截图
此为MainActivity中调用的方法的地方(trans为OnClick事件)
public void trans(View view) {
ProgressDialogUtil.showProgressDialog(MainActivity.this);
if (!clicked) {
ProgressDialogUtil.showProgressDialog(MainActivity.this);
imageView.setImageBitmap(bitmap1);
clicked = !clicked;
} else {
imageView.setImageBitmap(bitmap);
clicked = !clicked;
}
generator(bitmap1);
for (int j = 0; j < Gcodes.size()-1; j++){
t+=Gcodes.get(j)+"\n";
}
txv1.setText(t);
ProgressDialogUtil.dismiss();
}
此为被调用之方法
public class ProgressDialogUtil {
private static AlertDialog mAlertDialog;
/**
* 彈出耗時對話方塊
* @param context
*/
public static void showProgressDialog(Context context) {
if (mAlertDialog == null) {
mAlertDialog = new AlertDialog.Builder(context, R.style.CustomProgressDialog).create();
}
View loadView = LayoutInflater.from(context).inflate(R.layout.custom_progress_dialog_view, null);
mAlertDialog.setView(loadView, 0, 0, 0, 0);
mAlertDialog.setCanceledOnTouchOutside(false);
TextView tvTip = loadView.findViewById(R.id.tvTip);
tvTip.setText("載入中...");
mAlertDialog.show();
}
public static void showProgressDialog(Context context, String tip) {
if (TextUtils.isEmpty(tip)) {
tip = "載入中...";
}
if (mAlertDialog == null) {
mAlertDialog = new AlertDialog.Builder(context, R.style.CustomProgressDialog).create();
}
View loadView = LayoutInflater.from(context).inflate(R.layout.custom_progress_dialog_view, null);
mAlertDialog.setView(loadView, 0, 0, 0, 0);
mAlertDialog.setCanceledOnTouchOutside(false);
TextView tvTip = loadView.findViewById(R.id.tvTip);
tvTip.setText(tip);
mAlertDialog.show();
}
/**
* 隱藏耗時對話方塊
*/
public static void dismiss() {
if (mAlertDialog != null && mAlertDialog.isShowing()) {
mAlertDialog.dismiss();
}
}
}
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
在运算前跳出等待框,运算结束后隐藏