Android: ProgressDialog not showing in adapter class

In my application, I have a list, and each item has a button. If the user clicks the button, I want to make some http connection. Therefore, I use AsyncTask in the adapter class. Now the problem in the progress dialog is not displayed.

private class MyClass extends AsyncTask<Void, Long, Boolean> {
        private Context context;
        private ServerCall call = new ServerCall();
        private ProgressDialog progressDialog1;

        public MyClass(Context context) {
            this.context = context;
        }

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            try {
                progressDialog1 = ProgressDialog.show(context, "",
                        "Please wait...", true);
                progressDialog1.setIndeterminate(true);

            } catch (final Throwable th) {

            }

        }

        @Override
        protected void onProgressUpdate(Long... values) {

            super.onProgressUpdate(values);
        }

        @Override
        protected Boolean doInBackground(Void... params) {
            //some tasks

            return true;
        }

        @Override
        protected void onPostExecute(Boolean result) {
            if (mode.equalsIgnoreCase("History")) {

                Intent order = new Intent(context, ActicityA.class);
                order.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(order);

            } else {
                Intent order = new Intent(context, ActivityB.class);
                order.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(order);
            }

        }
    }
+5
source share
4 answers

It ProgressDialog.show()is ProgressDialogtrue that the method returns an obect object , but it is better to create a ProgressDialog object first, for example:

ProgressDialog progressDialog1 = new ProgressDialog();

and then

progressDialog1 = ProgressDialog.show(context, "",
                        "Please wait...", true);

And also try ending progressDialog1up onPostExecute()by calling its method dismiss().

-1
source

Try instead

protected void onPreExecute() {
        dialog = new ProgressDialog(Activity.this);
        dialog.setMessage("Please wait...");
        dialog.setIndeterminate(true);
        //dialog.setCancelable(false);
        dialog.show();
    }
0
source
    Follow this steps 
    [0] start showing progressbar
    [1] Execute AsyncTask class
    [2] in this class one interface for post the response in main class 
    [3] Declare one interface class
    [4] get Reponse in Main Clss using interface 
    [5] dismiss Progressbar and Bind your Data 

    ex. 
    [0]

            progr.setVisibility(View.VISIBLE);
    [1]
                    MyTask task = new MyTask();
                task.setdata(new SendData() {
    [4]             @Override
                    public void GetStringResponse(String str) {
                        Log.i(General.TAG, TAG + " Overide GetString-"+str);                    
                        final String GetResponse=str;
                    // here you get response and parse it   
   [5]                               // here you can dismiss your progress bar                          
                    }
                });
                task.execute(new String[] {Newsurl[Id]});


    [2] Add interface here with Method

    SendData  objsend;

    @Override 
        protected void onPostExecute(String Result)
        {
            Log.i("**********", Result);        
            objsend.GetStringResponse(Result);  
        }

        public void setdata(SendData  sendd)
        {
            Log.i(General.TAG,TAG+"Initialise Interface object");
            objsend = sendd;
        }

 [3] interface class
     public interface SendData {    
    public  abstract void GetStringResponse(String str);
}
0
<pre><code>
public MyClass(Context context) {
        this.context = context;
        progressDialog1=new ProgressDialog(context);
    }

@Override   protected void onPreExecute() {

    progressdialog1.setMessage("please wait while loading");
    progressdialog1.setIndeterminate(true);

    }  

0

All Articles