项目结构如下:
Volley工具类:
VolleyTool类负责实例化mRequestQueue和mImageLoader。
package com.example.utils;
import android.content.Context;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.Volley;
public class VolleyTool {
private static VolleyTool mInstance = null;
private RequestQueue mRequestQueue;
private ImageLoader mImageLoader;
private VolleyTool(Context context){
mRequestQueue = Volley.newRequestQueue(context);
mImageLoader = ImageLoaderUtils.getImageLoader(mRequestQueue);
}
public static VolleyTool getInstance(Context context){
if (mInstance==null) {
mInstance = new VolleyTool(context);
}
return mInstance;
}
public RequestQueue getmRequestQueue() {
return mRequestQueue;
}
public ImageLoader getmImageLoader() {
return mImageLoader;
}
public void release() {
this.mImageLoader = null;
this.mRequestQueue = null;
mInstance = null;
}
}
JsonUtils 是解析json数据的工具类
package com.example.utils;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONObject;
import android.content.Context;
import android.util.Log;
import com.android.volley.AuthFailureError;
import com.android.volley.DefaultRetryPolicy;
import com.android.volley.NetworkResponse;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.Response.Listener;
import com.android.volley.RetryPolicy;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.HttpHeaderParser;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.StringRequest;
public class JsonUtils {
/**
* 解析json数据的工具类
*
* @param context
* @param json_path
* @param callBack
* @param queue
*/
public static void parseJsonString(Context context, String json_path,
final JsonStringCallBack callBack,
final RequestTimeOutCallBack timeOutCallBack, RequestQueue queue) {
StringRequest request = new StringRequest(json_path,
new Listener<String>() {
@Override
public void onResponse(String response) {
// TODO Auto-generated method stub
callBack.jsonStringCallBack(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
timeOutCallBack.timeOutCallBack(error.getMessage());
}
}) {
@Override
protected Response<String> parseNetwork