简体   繁体   中英

Progress bar in android is not stopping after loading data from json file

After trying for so many times it didnt worked ,I am retrieving data from database in json format and displaying in android in recyclerview .Once the data is shown the progress bar is not stopping or not getting invisible. only the progress bar is not working mainactivity.java

`protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btnDatePicker = (Button) findViewById(R.id.btn_date);
    MobileProgressBar = (ProgressBar)findViewById(R.id.progressBar);
    loadRecyclerViewData();`



`private void loadRecyclerViewData(){

    //to fetch data we do string request
    StringRequest stringRequest = new StringRequest(Request.Method.GET,
            URL_Data,
            new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            try {
                //JSONObject jsonObject=new JSONObject(s);
               // JSONArray array=jsonObject.getJSONArray("contact");//Array name

                //converting the string to json array object

                JSONArray array = new JSONArray(response);
                //JSONArray arr=array.getJSONArray("Array");

                for(int i=0;i< array.length();i++){
                    //getting product object from json array

                    JSONObject jsonObjec = array.getJSONObject(i);

                    ListUser user=new ListUser(
                            jsonObjec.getString("name"),
                            jsonObjec.getString("email"),
                            jsonObjec.getString("contactno"),
                            jsonObjec.getString("date"),
                            jsonObjec.getString("time"),
                            jsonObjec.getString("requirement_type"),
                            jsonObjec.getString("message")

                    );

                            listUsers.add(user);

                }



               adapter=new MyAdapter(listUsers, getApplicationContext());//data from MyAdapter constructor
                recyclerView.setAdapter(adapter);

            }

            catch (JSONException e) {
                e.printStackTrace();
            }
        }
    },

            new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError  volleyError) {

            Toast.makeText(getApplicationContext(), volleyError.getMessage(), Toast.LENGTH_SHORT).show();
        }
    });

    RequestQueue requestQueue= Volley.newRequestQueue(this);

    requestQueue.add(stringRequest);
    MobileProgressBar.setVisibility(View.GONE);
}`

anyone try to help

Try this after setting your adapter use MobileProgressBar.setVisibility(View.GONE);

 adapter=new MyAdapter(listUsers, getApplicationContext());//data from 
 MyAdapter constructorrecyclerView.setAdapter(adapter);
 MobileProgressBar.setVisibility(View.GONE);

set visibility gone in onResponse and onErrorResponse

private void loadRecyclerViewData(){

    //to fetch data we do string request
    StringRequest stringRequest = new StringRequest(Request.Method.GET,
            URL_Data,
            new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {

            try {
                //JSONObject jsonObject=new JSONObject(s);
               // JSONArray array=jsonObject.getJSONArray("contact");//Array name

                //converting the string to json array object

                JSONArray array = new JSONArray(response);
                //JSONArray arr=array.getJSONArray("Array");

                for(int i=0;i< array.length();i++){
                    //getting product object from json array

                    JSONObject jsonObjec = array.getJSONObject(i);

                    ListUser user=new ListUser(
                            jsonObjec.getString("name"),
                            jsonObjec.getString("email"),
                            jsonObjec.getString("contactno"),
                            jsonObjec.getString("date"),
                            jsonObjec.getString("time"),
                            jsonObjec.getString("requirement_type"),
                            jsonObjec.getString("message")

                    );

                            listUsers.add(user);

                }



               adapter=new MyAdapter(listUsers, getApplicationContext());//data from MyAdapter constructor
                recyclerView.setAdapter(adapter);
               MobileProgressBar.setVisibility(View.GONE);//change here

            }

            catch (JSONException e) {
                e.printStackTrace();
                MobileProgressBar.setVisibility(View.GONE);//change here
            }
        }
    },

            new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError  volleyError) {
            MobileProgressBar.setVisibility(View.GONE);//change here
            Toast.makeText(getApplicationContext(), volleyError.getMessage(), Toast.LENGTH_SHORT).show();
        }
    });

    RequestQueue requestQueue= Volley.newRequestQueue(this);

    requestQueue.add(stringRequest);

}
//Try this code
    private void loadRecyclerViewData(){

        //to fetch data we do string request
        StringRequest stringRequest = new StringRequest(Request.Method.GET,
                URL_Data,
                new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                try {
        MobileProgressBar.setVisibility(View.GONE);
                    //JSONObject jsonObject=new JSONObject(s);
                   // JSONArray array=jsonObject.getJSONArray("contact");//Array name

                    //converting the string to json array object

                    JSONArray array = new JSONArray(response);
                    //JSONArray arr=array.getJSONArray("Array");

                    for(int i=0;i< array.length();i++){
                        //getting product object from json array

                        JSONObject jsonObjec = array.getJSONObject(i);

                        ListUser user=new ListUser(
                                jsonObjec.getString("name"),
                                jsonObjec.getString("email"),
                                jsonObjec.getString("contactno"),
                                jsonObjec.getString("date"),
                                jsonObjec.getString("time"),
                                jsonObjec.getString("requirement_type"),
                                jsonObjec.getString("message")

                        );

                                listUsers.add(user);

                    }



                   adapter=new MyAdapter(listUsers, getApplicationContext());//data from MyAdapter constructor
                    recyclerView.setAdapter(adapter);

                }

                catch (JSONException e) {
        MobileProgressBar.setVisibility(View.GONE);
                    e.printStackTrace();
                }
            }
        },

                new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError  volleyError) {
        MobileProgressBar.setVisibility(View.GONE);

                Toast.makeText(getApplicationContext(), volleyError.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });

        RequestQueue requestQueue= Volley.newRequestQueue(this);

        requestQueue.add(stringRequest);
    }`

Just use,

MobileProgressBar.setVisibility(View.GONE);

when you want to stop progress bar.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM