Android采用Volley具体的例子展示完整的异步加载数据(一)

MainActivity例如下列:
package cc.cn;

import java.util.HashMap;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import com.android.volley.AuthFailureError;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.Request.Method;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
/**
 * Demo描写叙述:
 * 去年一个项目中简单的使用了Volley,參见:
 * http://blog.csdn.net/lfdfhl/article/details/12223345
 * 近期guolin写了几篇文章具体介绍Volley,所以在此比較系统地学习一下.
 * 在本演示样例中,主要包含:
 * 1 利用Volley实现Get请求
 * 2 利用Volley实现Post请求
 * 3 利用Volley实现Json数据请求
 * 
 * 注意事项:
 * 1 引入jar包volley.jar
 * 2 网络权限<uses-permission android:name="android.permission.INTERNET"/>
 * 
 * 学习资料:
 * http://blog.csdn.net/guolin_blog/article/details/17482095
 * Thank you very much
 *
 */
public class MainActivity extends Activity {
	private RequestQueue mRequestQueue;
	private StringRequest mStringRequest;
	private Context mContext;
	private JsonObjectRequest mJsonObjectRequest;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        volley_get();
        //volley_post();
        //volley_json();
    }
    

    
    //利用Volley实现Get请求
    private void volley_get(){
    	mContext=this;
    	String url="http://www.baidu.com/";
    	//1 创建RequestQueue对象
    	mRequestQueue=Volley.newRequestQueue(mContext);
    	//2 创建StringRequest对象
		mStringRequest = new StringRequest(
				url,
				new Response.Listener<String>() {
					@Override
					public void onResponse(String response) {
                        System.out.println("请求结果:"+response);
					}
				}, 
				new Response.ErrorListener() {
					@Override
					public void onErrorResponse(VolleyError error) {
                        System.out.println("请求错误:"+error.toString());
					}
				});
		//3 将StringRequest加入到RequestQueue
		mRequestQueue.add(mStringRequest);
    }
    
    //利用Volley实现Post请求
	private void volley_post() {
		String url = "http://hxyj.cwwic.cn/wap/api_cs/user.php?action=login";
		mContext = this;
		mRequestQueue = Volley.newRequestQueue(mContext);
		mStringRequest = new StringRequest(
				Method.POST, 
				url,
				new Response.Listener<String>() {
					@Override
					public void onResponse(String response) {
						System.out.println("请求结果:" + response);
					}
				}, 
				new Response.ErrorListener() {
					@Override
					public void onErrorResponse(VolleyError error) {
						System.out.println("请求错误:" + error.toString());
					}
				}) {
			//携带參数
			@Override
			protected HashMap<String, String> getParams()throws AuthFailureError {
				HashMap<String, String> hashMap = new HashMap<String, String>();
				hashMap.put("un", "411111222");
				hashMap.put("pw", "180034111");
				return hashMap;
			}

		};
		mRequestQueue.add(mStringRequest);

	}
	
	 //利用Volley实现Json数据请求
	private void volley_json() {
		mContext = this;
		String url = "http://m.weather.com.cn/data/101010100.html";
		// 1 创建RequestQueue对象
		mRequestQueue = Volley.newRequestQueue(mContext);
		// 2 创建JsonObjectRequest对象
		mJsonObjectRequest = new JsonObjectRequest(
				url, 
				null,
				new Response.Listener<JSONObject>() {
					@Override
					public void onResponse(JSONObject response) {
						System.out.println("请求结果:" + response.toString());
					}
				}, 
				new Response.ErrorListener() {
					@Override
					public void onErrorResponse(VolleyError error) {
						System.out.println("请求错误:" + error.toString());
					}
				});

		// 3 将JsonObjectRequest加入到RequestQueue
		mRequestQueue.add(mJsonObjectRequest);

	}
    
    
    
}

main.xml例如以下:

<?xml version="1.0" encoding="utf-8"?

> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="学习Volley(一)" android:layout_centerInParent="true" /> </RelativeLayout>



版权声明:本文博主原创文章,博客,未经同意不得转载。

posted @ 2015-09-29 10:03  phlsheji  阅读(761)  评论(0编辑  收藏  举报