2017-04-01 8 views
1

JsonRequestを継承するアンドロイドスタジオのクラスを作成しましたが、アンドロイドスタジオでエラーが発生し、ライブラリにデフォルトのコンストラクタが存在しないため、それのために。 実際に私は、アンドロイドのリストビューでjsonファイルを解析するためにvolleyライブラリを使用しています。 原因jsonはこのクラスを作成したすべてのペルシア語のテキストで、utf-8エンコーディングに変更されています。 必要なコンストラクタがどのようになっているかを教えてください。私はいくつか試しましたが、正しくありませんでした。JsonRequestを継承するクラスのコンストラクタを作成する<JSONObject>

public class Utf8JsonRequest extends JsonRequest<JSONObject> { 
    ... 
    @Override 
    protected Response<JSONObject> parseNetworkResponse (NetworkResponse response) { 
     try { 
      String utf8String = new String(response.data, "UTF-8"); 
      return Response.success(new JSONObject(utf8String), HttpHeaderParser.parseCacheHeaders(response)); 
     } catch (UnsupportedEncodingException e) { 
      // log error 
      return Response.error(new ParseError(e)); 
     } catch (JSONException e) { 
      // log error 
      return Response.error(new ParseError(e)); 
     } 
    } 
} 
+0

は、すでにutf-8でエンコードされているペルシア語のテキストではありませんか? – nandsito

+1

@nandsitoデフォルトでは、volleyライブラリのエンコーダはISO-8859-1で、ペルシア語またはアラビア語のテキストは表示されません – Aliryanfox

答えて

0

ここでは、コンストラクタの例です:

// the constructor should have at least these parameters 
// to be passed onto super() 
public Utf8JsonRequest(int method, 
         String url, 
         String requestBody, 
         Response.Listener<JSONObject> listener, 
         Response.ErrorListener errorListener) { 
    super(method, url, requestBody, listener, errorListener); 

    // you can initialize other stuff if you wish 
} 
+0

tank you @nandsito – Aliryanfox

0

それはJsonRequestと同じコンストラクタです:

JsonRequest(int型のメソッド、文字列のURL、文字列requestBody、Response.Listenerリスナー、Response.ErrorListenerは、ErrorListener)

+0

これはうまくいきませんでした – Aliryanfox

+0

それはdocs http://afzaln.com/ volley/com/android/volley/toolley/toolbox/JsonRequest.html – ElDuderino

+0

あなたの注目のためのタンックス – Aliryanfox

関連する問題