Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android利用Volley異步加載數據完整詳細示例(一)

Android利用Volley異步加載數據完整詳細示例(一)

編輯:關於Android編程

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 網絡權限
 * 
 * 學習資料:
 * 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() {
					@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() {
					@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 getParams()throws AuthFailureError {
				HashMap hashMap = new HashMap();
				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() {
					@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如下:




    



  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved