2016-08-18 3 views
0

Hey, ich benutze AsynHttpClient.Benutzerdefinierte Rückruf von AsynHttpClient

Ich möchte meine Get und Set-Funktionen in einer Aktivität implementieren, wo sie von anderen aufgerufen werden können.

Aber wie kann ich meinen benutzerdefinierten Rückruf vom Antwort-Callback aufrufen?

ich nicht es bekommen, wie es in einer inneren Klasse arbeitet

public void requestApiUrl(Callback callback){ 
    JSONObject jsonObj = new JSONObject(); 
    try { 
     jsonObj.put("AppKey",getResources().getString(R.string.AppKey)); 
     AsyncHttpClient client = new AsyncHttpClient(); 
     StringEntity entity = null; 
     try { 
      entity = new StringEntity(jsonObj.toString()); 
      entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); 
      client.get(this, "***************URL***********", entity, "application/json", new JsonHttpResponseHandler() { 
       @Override 
       public void onSuccess(int statusCode, cz.msebera.android.httpclient.Header[] headers, JSONObject utils) { 
        super.onSuccess(statusCode, headers, utils); 
        Log.d("HTTP", "response: " + utils.toString()); 
        callback.reponse(); 
       } 

       public void onFailure(int statusCode, cz.msebera.android.httpclient.Header[] headers, String responseString, Throwable throwable) { 
        super.onFailure(statusCode, headers, responseString, throwable); 
        Log.d("Failed: ", "" + statusCode); 
        Log.d("Error : ", "" + throwable); 
        callback.reponse(); 
       } 
      }); 

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

Antwort

0

Soweit ich aus Ihrer Frage kommen könnten, müssen Sie von Kind/inneren Klasse eine Funktion aufzurufen, in dem die Funktion gehört zu den Elternteil/äußere Klasse. Zitiert die Antwort von this question

Für eine Klasse

class Outer { 
    void show() { 
     System.out.println("outter show"); 
    } 

    class Inner{ 
     void show() { 
      System.out.println("inner show"); 
        } 
       } 
} 

können Sie einfach anrufen

Outer.this.show();