Android之智慧北京二

Android之智慧北京二

Http

  1. Requst (請求)

    GET /zhbj/categories.json HTTP/1.1
    Host: localhost:8080
    Connection: keep-alive
    Cache-Control: max-age=0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
    Accept-Encoding: gzip, deflate, sdch
    Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
    RA-Ver: 2.8.8
    RA-Sid: 74195216-20150210-033823-d1a3bf-9cedaa
    If-None-Match: W/"1171-1412422055000"
    If-Modified-Since: Sat, 04 Oct 2014 11:27:35 GMT
    
    name=xxx&pwd=xxx 
    {json:}
    1. 請求消息行 : 請求方式,請求的url,http版本
    2. 請求消息頭 : key-value
    3. 請求實體內容:
  2. response (響應)

    HTTP/1.1 304 Not Modified
    Server: Apache-Coyote/1.1
    ETag: W/"1171-1412422055000"
    Date: Mon, 09 Mar 2015 01:49:42 GMT
    
    {"retcode":200,"data":[{"id":10000,"title":"新聞","type":1,"children":[{"id":10007,"title":"北京","type":1,"url":"/10007/list_1.json"},{"id":10006,"title":"中國","type":1,"url":"/10006/list_1.json"},{"id":10008,"title":"國際","type":1,"url":"/10008/list_1.json"},{"id":10010,"title":"體育","type":1,"url":"/10010/list_1.json"},{"id":10091,"title":"生活","type":1,"url":"/10091/list_1.json"},{"id":10012,"title":"旅遊","type":1,"url":"/10012/list_1.json"},{"id":10095,"title":"科技","type":1,"url":"/10095/list_1.json"},{"id":10009,"title":"軍事","type":1,"url":"/10009/list_1.json"},{"id":10093,"title":"時尚","type":1,"url":"/10093/list_1.json"},{"id":10011,"title":"財經","type":1,"url":"/10011/list_1.json"},{"id":10094,"title":"育兒","type":1,"url":"/10094/list_1.json"},{"id":10105,"title":"汽車","type":1,"url":"/10105/list_1.json"}]},{"id":10002,"title":"專題","type":10,"url":"/10006/list_1.json","url1":"/10007/list1_1.json"},{"id":10003,"title":"組圖","type":2,"url":"/10008/list_1.json"},{"id":10004,"title":"互動","type":3,"excurl":"","dayurl":"","weekurl":""}],"extend":[10007,10006,10008,10014,10012,10091,10009,10010,10095]}
    1. 響應消息行: http版本, 響應狀態碼,響應的描述
    2. 響應的消息頭: key-value
    3. 響應的內容 :

Gson的使用\先把gson-2.2.1.jar拷貝到lib下

  1. json:

    1. key-value
    2. key 永遠是String
    3. value: 集合,數字,String, boolean
  2. Gson:(google)

    1. Gson 類的使用:
      1. toJson: 將java對象變成 json的string
      2. fromJson: 將json串轉化爲java對象

    1、解析json串數據變成一個javabean對象存儲數據,jsonString爲服務器返回的字符串

    // 1、解析json串
    Gson gson = new Gson();
    NewsListBean bean = gson.fromJson(jsonString, NewsListBean.class);
    

訪問服務器ip的設置

在虛擬機中設置:

//服務器地址
//服務器地址,本機ip、虛擬ip
String SERVICE_URL="http://10.207.116.24:8888/zhbj";
String NEWS_CENTER_URL=SERVICE_URL+"/categories.json";

10.207.116.24:是聯網的本機ip,8888是設置的端口號,categories.json是文件名

開源框架 xUtils的使用(部分)

網絡請求訪問模塊

1、

 //通過網絡獲取數據,加載進來
    HttpUtils utils=new HttpUtils();
    utils.send(HttpMethod.GET, Constans.NEWS_CENTER_URL, new RequestCallBack<String>(){

        //訪問網絡成功
        @Override
        public void onSuccess(ResponseInfo<String> responseInfo)
        {
            //取出結果值
            String result=responseInfo.result;
            Log.i(TAG, "訪問成功"+result);
        }
        //訪問網絡失敗
        @Override
        public void onFailure(HttpException error, String msg)
        {
            //打印棧錯誤信息,使用第三方開源庫需要打印,不然看不到錯誤信息
        error.printStackTrace();
            Log.i(TAG, "訪問失敗"+msg);
        }});

2、

    //通過網絡獲取數據,加載進來
    HttpUtils utils=new HttpUtils();


    RequestParams params=new RequestParams();
    //消息頭
    params.addHeader("", "");

    //1、請求參數
    //post
    NameValuePair pair=new BasicNameValuePair("", "");
    params.addBodyParameter(pair);

    //get
    NameValuePair pair=new BasicNameValuePair("", "");
    params.addQueryStringParameter(pair);

    utils.send(HttpMethod.GET, Constans.NEWS_CENTER_URL, params, new RequestCallBack<String>(){

        //訪問網絡成功
        @Override
        public void onSuccess(ResponseInfo<String> responseInfo)
        {
            //取出結果值
            String result=responseInfo.result;
            Log.i(TAG, "訪問成功"+result);
            processJson( result);
        }
        //訪問網絡失敗
        @Override
        public void onFailure(HttpException error, String msg)
        {
            //打印棧錯誤信息
        error.printStackTrace();
            Log.i(TAG, "訪問失敗"+msg);
        }});

2、注入模塊的使用

1、對id注入的寫法

@ViewInject(R.id.news_tab_indicator)
private TabPageIndicator tabPagerIndicator;

@ViewInject(R.id.news_center_pager)
private ViewPager mViewPager;

//在這裏可以直接使用了,不用再寫findViewById()了

View view=View.inflate(mContext, R.layout.news_center_tab, null);
    //使用ViewUtils注入
    ViewUtils.inject(mContext, view);

    return view;

2、對控件點擊事件使用注入的寫法

@OnClick(R.id.news_arrow)
public void onClick(View view){
    //點擊箭頭到下一個
    int item=mViewPager.getCurrentItem();

    mViewPager.setCurrentItem(++item);
}

加載圖片模塊: BitmapUtils

加載圖片的功能也比較簡單,首先在初始化中創建一個BitmapUtils出來

BitmapUtils  mBitmapUtils = new BitmapUtils(context);

在需要加載圖片的地方調用display(View ,url)這個方法就可以了。View是承載圖片的控件例如:ImageView

這只是Bitmap的一個加載圖片數據的簡單方法,裏面還封裝了很多方法,想了解更多的就去看看xUtils中BitmapUtils模塊的源碼吧。

開源框架 ViewPagerIndicator的使用

1、開源框架中有六種樣式,想了解更多的的去看看開源庫吧!

主要介紹的是tab與viewpager的搭配時用。

發佈了40 篇原創文章 · 獲贊 9 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章