我在按钮内添加进度对话框时遇到问题

问题描述 投票:-1回答:1

这是问题,下面的代码没有打开对话框,但如果我删除progressDialog.dissmiss()行,它会打开但不会关闭,我出错了什么?

public void onClick(View v) {
 progressDialog = new ProgressDialog(MainActivity.this);
 progressDialog.setTitle(R.string.loading);
 progressDialog.show();
 if (mycontrol == true) {
  imgview.invalidate();
  BitmapDrawable drawable = (BitmapDrawable) imgview.getDrawable();
  Bitmap bitmap = drawable.getBitmap();
  imgview2.setVisibility(View.VISIBLE);
  imageprocessing = new ImageProcessing();
  imgview2.setImageBitmap(imageprocessing.choseeProcces(no, bitmap));
 } else
  Toast.makeText(getBaseContext(), R.string.selectImage, Toast.LENGTH_SHORT).show();
 progressDialog.dismiss();
}
java android progressdialog
1个回答
0
投票

ProgressDialog正在显示,然后立即被驳回。

您需要做的是在progressDialog语句的开头创建if,并将progressDialog.dismiss()作为if语句中的最后一行。通常,应在启动长时间运行或后台任务(例如网络调用)之前创建进度条或对话框,并且只在任务完成后才解除。

public void onClick(View v) {
    if (mycontrol == true) {
        // Create the progress dialog
        progressDialog = new ProgressDialog(MainActivity.this);
        progressDialog.setTitle(R.string.loading);
        progressDialog.show();

        // Perform a long running task
        imgview.invalidate();
        BitmapDrawable drawable = (BitmapDrawable) imgview.getDrawable();
        Bitmap bitmap = drawable.getBitmap();
        imgview2.setVisibility(View.VISIBLE);
        imageprocessing = new ImageProcessing();
        imgview2.setImageBitmap(imageprocessing.choseeProcces(no, bitmap));

        // Dismiss the progress dialog
        progressDialog.dismiss();
    } else {
        Toast.makeText(getBaseContext(), R.string.selectImage, Toast.LENGTH_SHORT).show();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.