編輯:關於Android編程
雖然Volley已經提供了對於String,圖片,JSON,Request的解析,但是總會有些數據不屬於以上三種的,這時候就需要我們來自己實現的一個Request來解析我們需要的數據。
實現一個自定義的Request很簡單:
1. 繼承Request
2. 實現parseNetworkResponse()和deliverResponse()方法。
@Override protected ResponseparseNetworkResponse( NetworkResponse response) { try { String json = new String(response.data, HttpHeaderParser.parseCharset(response.headers)); return Response.success(gson.fromJson(json, clazz), HttpHeaderParser.parseCacheHeaders(response)); } // handle errors ... }
parseNetworkResponse()的參數NetworkResponse,這個參數中包含了HTTP的狀態碼,response的header等數據。我們重寫這個函數時,返回的Response
Volley是在一個新線程裡調用parseNetworkResponse,防止主線程堵塞。
protected void deliverResponse(T response) { listener.onResponse(response);
public class GsonRequestextends Request { private final Gson gson = new Gson(); private final Class clazz; private final Map headers; private final Listener listener; /** * Make a GET request and return a parsed object from JSON. * * @param url URL of the request to make * @param clazz Relevant class object, for Gson's reflection * @param headers Map of request headers */ public GsonRequest(String url, Class clazz, Map headers, Listener listener, ErrorListener errorListener) { super(Method.GET, url, errorListener); this.clazz = clazz; this.headers = headers; this.listener = listener; } @Override public Map getHeaders() throws AuthFailureError { return headers != null ? headers : super.getHeaders(); } @Override protected void deliverResponse(T response) { listener.onResponse(response); } @Override protected Response parseNetworkResponse(NetworkResponse response) { try { String json = new String( response.data, HttpHeaderParser.parseCharset(response.headers)); return Response.success( gson.fromJson(json, clazz), HttpHeaderParser.parseCacheHeaders(response)); } catch (UnsupportedEncodingException e) { return Response.error(new ParseError(e)); } catch (JsonSyntaxException e) { return Response.error(new ParseError(e)); } } }
寫在前面的話對於TextView,我想大家都已經熟的不能再熟了。但是它的用法我們真的熟麼?為了避免總是一言不合就去翻官方文檔,在這裡我總結一下我也可能是你容易忽視的一些細
廢話不多說了,先給大家展示下自定義view效果圖,如果大家覺得還不錯的話,請繼續往下閱讀。怎麼樣,這種驗證碼是不是很常見呢,下面我們就自己動手實現這種效果,自己動手,豐衣
首先給出效果圖 中間的色塊是因為視頻轉成GIF造成的失真,自動忽略哈。大家知道,橫向的跑馬燈android自帶的TextView就可以實現,詳情請百度【Andr
配置AndroidMainfest.xml以友盟渠道為例,渠道信息一般都是寫在 AndroidManifest.xml文件中,代碼大約如下:如果不使用多渠道打包方法,那就