package com.znv.linkup.rest;
import org.json.JSONArray;
import android.content.Context;
import android.widget.ImageView;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.ImageLoader.ImageListener;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.NetworkImageView;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.znv.linkup.R;
/**
* Volley网络事件处理的帮助类
*
* @author yzb
*
*/
public class VolleyHelper {
private Context ctx = null;
private RequestQueue requestQueue = null;
public VolleyHelper(Context ctx) {
this.ctx = ctx;
requestQueue = Volley.newRequestQueue(ctx);
}
/**
* 加载JsonArray数据
*
* @param url
* url地址
* @param listener
* 网络消息处理监听器
*/
public void getJsonArray(String url, final NetMsgListener<JSONArray> listener) {
JsonArrayRequest jsonObjectRequest = new JsonArrayRequest(url, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
if (listener != null) {
listener.onNetMsg(response);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError e) {
if (listener != null) {
listener.onError(e);
}
}
});
requestQueue.add(jsonObjectRequest);
}
public void getString(String url, final NetMsgListener<String> listener) {
StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (listener != null) {
listener.onNetMsg(response);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError e) {
if (listener != null) {
listener.onError(e);
}
}
});
requestQueue.add(stringRequest);
}
/**
* 加载网络图片到ImageView
*
* @param iv
* ImageView实例
* @param url
* url地址
*/
public void loadImage(ImageView iv, String url) {
ImageLoader imageLoader = new ImageLoader(requestQueue, new BitmapCache());
ImageListener listener = ImageLoader.getImageListener(iv, R.drawable.icon_default, R.drawable.icon_default);
imageLoader.get(url, listener);
}
/**
* 加载网络图片到NetworkImageView
*
* @param niv
* NetworkImageView实例
* @param url
* url地址
*/
public void loadNetImage(NetworkImageView niv, String url) {
ImageLoader imageLoader = new ImageLoader(requestQueue, new BitmapCache());
niv.setTag("url");
niv.setImageUrl(url, imageLoader);
}
/**
* 取消所有请求
*/
public void cancelAll() {
requestQueue.cancelAll(ctx);
}
}