2016-06-27 44 views
0

enter image description here我在回覆響應中顯示換行符時出現問題。當我檢查不同設備中的文本時,我得到了不同的符號。 我已經把設定使用凌空使用GSON &請求的響應方式..LineBreaker在迴應中顯示不正確

...... 
Gson gson=new Gson(); 
ItemsHolder = gson.fromJson(response.toString(), 
         ItemsHolder.class); 
....... 


...... 
MenuItemsConfigurationListner configurationListner = new MenuItemsConfigurationListner(); 
     AuthonicateRequest jsonObjectRequest = new AuthonicateRequest(
       Request.Method.GET, 
       url, 
       (String) null, 
       configurationListner, 
       configurationListner 
     ); 

     jsonObjectRequest.setTag(TAG); 
     VolleySingleton.getVolleySingletonInstance().addToRequestQueue(
       jsonObjectRequest); 
    ............... 

頁眉

private class AuthonicateRequest extends JsonObjectRequest { 
     public AuthonicateRequest(int method, String url, String requestBody, Response.Listener<JSONObject> listener, Response.ErrorListener errorListener) { 
      super(method, url, requestBody, listener, errorListener); 
     } 

     @Override 
     public Map<String, String> getHeaders() throws AuthFailureError { 
      return createBasicAuthHeader(); 
     } 

     Map<String, String> createBasicAuthHeader() { 
      Map<String, String> headerMap = new HashMap<String, String>(); 
      headerMap.put(IConstants.CONTENT_TYPE, IConstants.APPLICATION_JSON); 
      return headerMap; 
     } 

    } 
+0

什麼是來自服務器的文本響應? – basilisk

+0

(用大蒜麪包裝的濃奶油雞湯) – Hansi

+0

當我在Rest-client上測試時,它只是忽略了那個字符和顯示像'(用大蒜麪包裝的濃奶油雞湯)' – Hansi

回答

1

如果來自服務器的響應返回包含斷路器,這是刪除它的方法,它取代'\ n'android studio支持斷路器。

private class MyListener implements Response.Listener<JSONObject>, Response.ErrorListener { 

      @Override 
      public void onErrorResponse(VolleyError error) { 
    Log.d(getTag() , error.toString()); 

         } 

      @Override 
      public void onResponse(JSONObject response) { 
    MyItem item = new Gson().fromGson(response.toString(),MyItem.class); 

    String desc = null != item.getContent() ? item.getContent() : getEmptyString() 
       desc = desc.replace("\u2028", System.getProperty("line.separator")); 
       textViewItemDesc.setText(desc`enter code here`); 
         } 
     } 
+0

請在此代碼中添加一些解釋? –

+1

我編輯並添加了解釋我希望現在可以理解。 – Hansi

0

如果要設置在一個TextView文本,你可以使用

Html.fromHtml(yourText); 

它將基本的html標籤轉換爲相應的Span,您可以在TextView中使用得到的Spanned字符串。

textView.setText(Html.fromHtml(yourText)); 
+0

這不起作用。 :( – Hansi

+0

我試過2ways,但沒有爲我工作。String desc = null!= menuItem.getContent()?menuItem.getContent():getNAString(); textViewOrderItemDescription.setText(TextUtils.htmlEncode(desc)) ; textViewOrderItemDescription.setText(Html.fromHtml(desc)); – Hansi