-1

私はプログラミングに非常に慣れていないので、次のAsynTaskようにクラスを拡張しました。

private class HttpCalls extends AsyncTask<Void,Void,JSONObject>

そして私はこのようにメソッドをオーバーライドしました:

protected JSONObject doInBackground(Void... voids) {
     . . .
     return jsonObject;
}

しかし、私が呼び出すとき、私new HttpCalls().execute()はリターンタイプをしたいのですJSONObjectが、私が得るものは:

AsyncTask<Void,Void,JSONObject>

これをに変更するにはどうすればよいですかJSONObject。前もって感謝します。

4

2 に答える 2

1

このようにする

JSONObject j = new HttpCalls().execute();

実際には返されませんJSONObject。自分自身を返しAsyncTaskます。

結果をキャッチする必要がありますonPostExecute()

@Override
protected void onPostExecute(JSONObject result) {

    super.onPostExecute(result);

    // Do some stuffs
}
于 2013-02-12T06:15:11.283 に答える
1
class YouClass {

public JSONObject result;

   private class HttpCalls extends AsyncTask<Void,Void,JSONObject>
       {
   @Override
   protected void onPostExecute(JSONObject result) {
       super.onPostExecute(result);
               YouClass.result = result;
       } } }
于 2013-02-12T06:15:39.270 に答える