亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

感覺老師這個二次封裝有些復雜,下面是我做的簡化版本。

public?abstract?class?VolleyListener?{

????public?abstract?void?onSuccess(String?result);
????public?abstract??void?onError(VolleyError?error);

????public?Response.Listener<String>?loadingListener(){
????????Response.Listener<String>?listener?=?new?Response.Listener<String>()?{
????????????@Override
????????????public?void?onResponse(String?response)?{
????????????????onSuccess(response);
????????????}
????????};
????????return?listener;
????}

????public?Response.ErrorListener?getErrorListener(){
????????Response.ErrorListener?errorListener?=?new?Response.ErrorListener(){

????????????@Override
????????????public?void?onErrorResponse(VolleyError?error)?{
????????????????onError(error);
????????????}
????????};
????????return?errorListener;
????}
}


Request封裝

public?class?VolleyRequest?{

????private?static?StringRequest?stringRequest;

????//有全局RequestQueue的GET請求

????public?static?void?requestGlobalGET(String?url,String?tag,VolleyListener?listener){
????????BaseApplication.getRequestQueue().cancelAll(tag);
????????stringRequest?=?new?StringRequest(Request.Method.GET,url,listener.loadingListener(),listener.getErrorListener());
????????stringRequest.setTag(tag);
????????BaseApplication.getRequestQueue().add(stringRequest);
????}

????//有全局RequestQueue的POST請求

????public?static?void?requestGlobalPOST(String?url,String?tag,VolleyListener?listener){
????????BaseApplication.getRequestQueue().cancelAll(tag);
????????stringRequest?=?new?StringRequest(Request.Method.POST,url,listener.loadingListener(),listener.getErrorListener());
????????stringRequest.setTag(tag);
????????BaseApplication.getRequestQueue().add(stringRequest);
????}

????//無全局RequestQueue的GET請求

????public?static?void?requestGET(Context?context,String?url,String?tag,VolleyListener?listener){
????????RequestQueue?queue?=?Volley.newRequestQueue(context);
????????stringRequest?=?new?StringRequest(Request.Method.GET,url,listener.loadingListener(),listener.getErrorListener());
????????stringRequest.setTag(tag);
????????queue.add(stringRequest);
????}

????//無全局RequestQueue的GET請求

????public?static?void?requestPOST(Context?context,String?url,String?tag,VolleyListener?listener){
????????RequestQueue?queue?=?Volley.newRequestQueue(context);
????????stringRequest?=?new?StringRequest(Request.Method.POST,url,listener.loadingListener(),listener.getErrorListener());
????????stringRequest.setTag(tag);
????????queue.add(stringRequest);

????}

}


調用

//有全局requestqueue無需加this,否則要加上下文
VolleyRequest.requestGET(this,"http://www.baidu.com","get",new?VolleyListener()?{
????@Override
????public?void?onSuccess(String?result)?{
????????Log.i("TAG",?result);
????}

????@Override
????public?void?onError(VolleyError?error)?{
????????Log.i("TAG",?error.getMessage());
????}
});







正在回答

舉報

0/150
提交
取消
Android-Volley詳解
  • 參與學習       33561    人
  • 解答問題       67    個

最熱門網絡框架~快速入門大法,還等什么,快來學習吧

進入課程

感覺老師這個二次封裝有些復雜,下面是我做的簡化版本。

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號