2016-04-20 16 views
1

In meinem Code muss ich stringRequest Volley, die funktioniert gut, aber jetzt möchte ich eine progressDialog verwenden. Ich habe 1-Methode erstellen, um die progressDialog wie dieseMit einem progressDialog in zwei oder mehr android stringRequest Volley

private void showProgress(String message) { 
    progressDialog = new ProgressDialog(this); 
    progressDialog.setTitle("Loading Data " + message); 
    progressDialog.setMessage("Please wait..."); 
    progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
    progressDialog.setCancelable(false); 
    progressDialog.show(); 
} 

zu setzen, und ich habe diese 2 stringRequest wie folgt aus:

private void fetchDataPoMurni(final String tipe, final String user_id, final String last_date) { 
    showProgress("Murni"); 
    String tag_string_req = "Request Po Dapat"; 
    StringRequest stringRequest = new StringRequest(
     Request.Method.POST, 
     AppConfig.URL_FETCH_REPORT_PO, 
     new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       try { 
        JSONObject jsonObject = new JSONObject(response); 
        boolean error = jsonObject.getBoolean("error"); 

        if(!error) { 
         JSONArray resultPo = jsonObject.getJSONArray("result"); 
         for(int i = 0; i < resultPo.length(); i++) { 
          JSONObject result = (JSONObject) resultPo.get(i); 
          String _cabang_id = result.getString("branch_id"); 
          String _area_id = result.getString("areacode"); 
          String _cabang = result.getString("branch_name"); 
          Log.d("FETCHING DATA MURNI: ", _cabang_id + " " + _area_id + " " + _cabang); 
          dataBaseHelper.insertDataPoMurni(new PoModel(_cabang_id.trim(), _area_id.trim(), _cabang.trim())); 
         } 
        } else { 
         String errorMsg = jsonObject.getString("result"); 
         showAlertDialog(errorMsg); 
        } 

       } catch (JSONException e) { 
        showAlertDialog(e.getMessage()); 
       } 

       if (progressDialog != null) { 
        if (progressDialog.isShowing()) { 
         progressDialog.dismiss(); 
        } 
       } 
      } 
     }, 
     new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError volleyError) { 
       showAlertDialog(volleyError.getMessage()); 
       if (progressDialog != null) { 
        if (progressDialog.isShowing()) { 
         progressDialog.dismiss(); 
        } 
       } 
      } 
     }) { 
      @Override 
      protected Map<String, String> getParams() { 
       Map<String, String> params = new HashMap<String, String>(); 
       params.put("tipe", tipe); 
       params.put("uid", user_id); 
       params.put("last_date", last_date); 
       return params; 
      } 
     }; 
    AppController.getInstance().addToRequestQueue(stringRequest, tag_string_req); 
} 

und die andere Anfrage:

private void fetchDataPoDapat(final String tipe, final String user_id, final String last_date) { 
    showProgress("Dapat"); 
    String tag_string_req = "Request Po Dapat"; 
    StringRequest stringRequest = new StringRequest(
     Request.Method.POST, 
     AppConfig.URL_FETCH_REPORT_PO, 
     new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       try { 
        JSONObject jsonObject = new JSONObject(response); 
        boolean error = jsonObject.getBoolean("error"); 

        if(!error) { 
         JSONArray resultPo = jsonObject.getJSONArray("result"); 
         for(int i = 0; i < resultPo.length(); i++) { 
          JSONObject result = (JSONObject) resultPo.get(i); 
          String _cabang_id = result.getString("branch_id"); 
          String _area_id = result.getString("areacode"); 
          String _cabang = result.getString("branch_name"); 
          Log.d("FETCHING DATA DAPAT : ", _cabang_id + " " + _area_id + " " + _cabang); 
          dataBaseHelper.insertDataPoDapat(new PoModel(_cabang_id.trim(), _area_id.trim(), _cabang.trim())); 
         } 
        } else { 
         String errorMsg = jsonObject.getString("result"); 
         showAlertDialog(errorMsg); 
        } 
       } catch (JSONException e) { 
        showAlertDialog(e.getMessage()); 
       } 
       if (progressDialog != null) { 
        if (progressDialog.isShowing()) { 
         progressDialog.dismiss(); 
        } 
       } 
      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError volleyError) { 
       showAlertDialog(volleyError.getMessage()); 
       if (progressDialog != null) { 
        if (progressDialog.isShowing()) { 
         progressDialog.dismiss(); 
        } 
       } 
      } 
     }) { 
      @Override 
      protected Map<String, String> getParams() { 
       Map<String, String> params = new HashMap<String, String>(); 
       params.put("tipe", tipe); 
       params.put("uid", user_id); 
       params.put("last_date", last_date); 
       return params; 
      } 
     }; 
    AppController.getInstance().addToRequestQueue(stringRequest, tag_string_req); 
} 

I führen die 2 Anfrage durch eine Methode wie folgt:

private void exeRequest() { 
    fetchDataPoMurni(valuea,value2,value3); 
    fetchDataPoDapat(valueb,value2,value3); 
} 

die progressDialog wird angezeigt, und die Nachricht ändert sich, aber das Problem ist, wenn die zweite Anforderung die progressDialog nicht ablehnen will.

Was ist falsch mit meinem Code oben, und wie zu erreichen, was ich will?

+0

Dialog erstellen Haben Sie es lösen und Sie treffen Sie auf 'übersprungen frames'? – natsumiyu

Antwort

0
private void showProgress(String message) { 
    progressDialog=null;// Initialize to null 
    progressDialog = new ProgressDialog(this); 
     progressDialog.setTitle("Loading Data " + message); 
    progressDialog.setMessage("Please wait..."); 
    progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
    progressDialog.setCancelable(false); 
    progressDialog.show(); 
} 

dieses .. Versuchen Sie, alle Instanzen des progressDialog initialisieren so schnell auf null, wie Sie einen neuen Fortschritt

+0

Kein Glück, immer noch gleich. –