这是问题,下面的代码没有打开对话框,但如果我删除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();
}
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();
}
}