[:en]Android: AsyncTask with ListView and ProgressBar[:]

[:en]AsyncTask with ListView and ProgressBar

AsyncTask

Step 1:


    


    



Step 2:

package com.example.cambridge.asynctaskwithlistview;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    private String[] names={"John","Simon","Amy","Rose","Joe","Cruise","Tim","Jim","Pete"};

    ListView listView;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView)findViewById(R.id.list_view);
        listView.setAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1,new ArrayList()));
        // Call AsyncTask
        new MyTask().execute();
    }

    class MyTask extends AsyncTask{
        //Define variables
        ArrayAdapter adapter;
        ProgressBar progressBar;
        int count;



        @Override
        protected void onPreExecute() {
            adapter = (ArrayAdapter)listView.getAdapter();
            progressBar = (ProgressBar)findViewById(R.id.progress_bar);
            // Set parameters
            progressBar.setMax(9);
            progressBar.setProgress(0);
            progressBar.setVisibility(View.VISIBLE);
            count = 0;
        }

        @Override
        protected String doInBackground(Void... params) {
            for (String Name : names){
              publishProgress(Name);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

            }

            return "All the names were added successfully";
        }

        @Override
        protected void onProgressUpdate(String... values) {
            // add names to the adapter
            adapter.add(values[0]);
            count++;
            progressBar.setProgress(count);
        }

        @Override
        protected void onPostExecute(String result) {
            Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG).show();
            progressBar.setVisibility(View.GONE);
            // Go to next page if you need it. Works!
           // startActivity(new Intent(MainActivity.this, secondpage.class));        }
    }

}

[:]

Print Friendly, PDF & Email
Scroll to Top