2016-04-11 3 views
0

リクエストとレスポンスのために私のアプリケーションでVolleyを使用します。問題は私はボレーを介して要求を取得するために次の行を呼び出す必要があり、これらの行の違いはオブジェクトの魔法使いjsonArrayの型(NewsItemのような)に2番目の問題は、応答を取得した後にXMLのレイアウトでオブジェクトの値を表示してキャストする必要があります。あるメソッドでこれらの行を要約し、このメソッドを別のオブジェクト型よりも前に呼び出す方法はありますか?ボレーの共通メソッドを作成するリクエストとレスポンス

private void GetOnlineNewsContent() { 
    CacheRequest cacheRequest = new CacheRequest(ContentActivity.this,Request.Method.POST, 
      service_address, 
      new Response.Listener<NetworkResponse>() { 
       @TargetApi(Build.VERSION_CODES.KITKAT) 
       @Override 
       public void onResponse(NetworkResponse response) { 
        try { 

         final String jsonString = new String(response.data, 
           HttpHeaderParser.parseCharset(response.headers)); 
         JSONArray jsonArray = new JSONArray(jsonString); 


         newsItem = NewsItem.fromJson(jsonArray.getJSONObject(0), term_id); 
         ShowContent(newsItem); 


        } catch (JSONException e) { 
         e.printStackTrace(); 
        } catch (UnsupportedEncodingException e) { 
         e.printStackTrace(); 
        } 
       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      VolleyLog.d(TAG, "Error: " + error.getMessage()); 
      pDialog.hide(); 
     } 
    }); 

答えて

1

はい。あなたはJavaでGenericsを見て学ぶべきです。

ジェネリック型を受け取るために、この新しいメソッドを作成し、特定の種類のクラスに対して操作を実行する必要があります。

あなたのnewItemと他の3つのクラスは、共通の基本クラスから来る必要があります。ジェネリック医薬品の

基本的なチュートリアルでは、ここで https://docs.oracle.com/javase/tutorial/java/generics/

+0

おかげで、どのように私の応答がXMLで利用可能とショー値である私の活動を伝えることを見つけることができますか? – serenei

+0

ただ1つのアクティビティを使用している場合は、メソッド自体にその「Activity」コンテキストを渡すか、複数のアクティビティを使用している場合は、メソッドと何らかの種類のインタフェースを作成し、 。 –

+0

@serenei質問に満足できる回答があれば受け入れてください –