2016-04-16 3 views
-1

zurückgegeben werden Ich brauche den Status [0] aus dem void onResponse() für den Rückgabewert der gesamten Methode zu definieren.Ich fand diesen Zustand [0] in der InResponse, die nicht sein kann deklariert den Wert für die Klasse. Ist es möglich, den Zustand [0] auszunehmen? Bitte hilf mir !!!!!!!!!!!!!!!! Ich habe keine Ideen dafür. Ich bin nur ein Neuling.Android: Wie Daten von Void-Methode

String url = url; 
    final boolean[] state = {true} 

    RequestQueue requestQueue = Volley.newRequestQueue(context); 

    CustomRequest customRequest = new CustomRequest(Request.Method.GET, url, new Response.Listener<JSONObject>() { 

     public void onResponse(JSONObject jsonObject) { 

      try { 
       for (int i = 0; i < jsonObject.getJSONArray("favourites").length(); i++) { 

        JSONObject row = jsonObject.getJSONArray("favourites").getJSONObject(i); 
        Favourite favourites = new Favourite(); 
        favourites.setFavouriteId(row.getString("favouriteId")); 
        favourites.setFavouriteUserId(row.getString("favouriteUserId")); 
        favourites.setFavouriteType(row.getString("favouriteType")); 

        favourites.setFavouritePostId(row.getString("favouritePostId")); 
        favourites.setFavouriteDate(row.getString("favouriteDate")); 

        if(!reportType.equals(favourites.getFavouriteType()) && !favouritePostId.equals(favourites.getFavouritePostId())){ 
         state[0] = false; 

        } 

        favouriteArrayList.add(i, favourites); 
       } 

       //Toast.makeText(context, "done", Toast.LENGTH_SHORT).show(); 

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

       Toast.makeText(context, R.string.error_json_error, Toast.LENGTH_SHORT).show(); 

      } 

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

     } 
    }); 

    requestQueue.add(customRequest); 

    if (state[0] == true) { 
     return 0; 
    } else{ 
     return 1; 
    } 
+0

Sie eine Methode Rückkehr int – Max

+0

onResponse erstellen müssen verwenden und onErrorResponse wird an der Stelle nicht ausgeführt werden, wo man sie schreiben, macht es keinen Sinn für sie etwas zurück. Verstehen Sie, wie asynchrone Rückrufe funktionieren? –

Antwort

0

Sie können keine Daten aus der void-Methode zurückgeben. Ändern Sie einfach "void" in "int", wenn Sie int-Werte in dieser Methode (wenn Sie können) zurückgeben. Also, wenn Sie thread verwenden - Use Handler, um Ihr Ergebnis in Main Thread zu behandeln. Wenn Sie AsyncTask verwenden - behandeln Sie Ihr Ergebnis in protected void onPreExecute() Methode. Hier ist, wie AsyncTask.

+0

kann ich den VolleyCallback in dieser onResponse verwenden, um den Wert zu erhalten? –

+0

überprüfen Sie Links: https://github.com/codepath/android_guides/wiki/Networking-with-the-Volley-Library, http://programminglife.io/android-volley-synchronous-request/, http: // mobikul .com/how-to-send-json-nach-anfrage-using-volley-rest-api / –

Verwandte Themen