I am trying to do display a ProgressBar.
I am an Android beginner.
When I press the button, the task should be running in the background, but it does not display
You are not calling dialog.show()
in onPreExecute
method of your AsyncTask
.
Use ProgressDialog
. You don't need any layout in this case.
ProgressDialog progressDialog = new ProgressDialog(context);
in onPreExecute
show it
progressDialog.show();
and in onPostExecute
dissmiss it
progressDialog.dismiss();
Add to OnPostExecute method :
pg.setVisibility(View.INVISIBLE);
Add to onPreExecute method :
pg.setVisibility(View.VISIBLE);
and in Layout file you should add to progress bar :
android:visibility="invisible"
You created the dialog but not showing it anywhere. Your onPreExecute() should look like:
@Override
protected void onPreExecute() {
super.onPreExecute();
// create dialog
dialog=new Dialog(context);
dialog.setCancelable(true);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.pogressdialog);
txtprogrss=(TextView) dialog.findViewById(R.id.txtProgress);
progress=(ProgressBar)dialog.findViewById(R.id.progressBar2);
btnCancel=(Button)dialog.findViewById(R.id.btnProgress);
btnCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
MyTask.this.cancel(true);
dialog.dismiss(); //On button click cancel AsyncTask and dismiss dialog
}
});
dialog.show(); //Show the dialog
}
You also need to dismiss the dialog when clicked on btnCancel.
You forgot to call dialog.show()
at the onPreExecute()