您的位置:首页 > 理论基础 > 计算机网络

HttpUtils请求 和XlistView 实现下拉刷新和上拉加载

2016-06-15 14:26 525 查看
package com.example.xlistview;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.LinkedList;

import org.com.cctest.view.XListView;

import org.com.cctest.view.XListView.IXListViewListener;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import com.example.xlistview.Data.DataBean;

import com.google.gson.Gson;

import com.lidroid.xutils.HttpUtils;

import com.lidroid.xutils.exception.HttpException;

import com.lidroid.xutils.http.ResponseInfo;

import com.lidroid.xutils.http.callback.RequestCallBack;

import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;

public class MainActivity extends Activity implements IXListViewListener {
    String refresh = "http://ic.snssdk.com/2/article/v25/stream/?category=news_tech&count=20&min_behot_time=1465266200&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1465265107&loc_mode=5&lac=4527&cid=28883&iid=4464422609&device_id=17258390367&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=SAMSUNG&os_api=19&os_version=4.4.4&uuid=353040417908000&openudid=84c1c7b192991cc6";

   // String more="http://ic.snssdk.com/2/article/v25/stream/?category=news_hot&count=20&max_behot_time=1465886546&bd_latitude=4.9E-324&bd_longitude=4.9E-324&bd_loc_time=1465889498&loc_mode=5&lac=4527&cid=28883&iid=4464422609&device_id=17258390367&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=SAMSUNG&os_api=19&os_version=4.4.4&uuid=353040417908000&openudid=84c1c7b192991cc6";

    LinkedList<DataBean> list = new LinkedList<DataBean>();

    Handler handler = new Handler() {

        private MyAdapter myAdapter;

        @SuppressWarnings("unchecked")

        public void handleMessage(android.os.Message msg) {

            switch (msg.what) {

            // 加载初始化数据

            case 1:

                list = (LinkedList<DataBean>) msg.obj;

                myAdapter = new MyAdapter(MainActivity.this, list);

                xlistView.setAdapter(myAdapter);

                // loadOver();

                break;

            // 刷新

            case 2:

                list.clear();

                for (DataBean dataBean : (LinkedList<DataBean>)msg.obj) {

                    //象开头添加

                    list.addFirst(dataBean);

                }

                // 刷新适配器

                myAdapter.notifyDataSetChanged();

                loadOver();

                break;

            // 加载更多

            case 3:

                for (DataBean dataBean : (LinkedList<DataBean>)msg.obj) {

                    //象结尾添加

                    list.addLast(dataBean);

                }

                // 刷新适配器

                myAdapter.notifyDataSetChanged();

                loadOver();

                break;

            }

        };

    };

    private XListView xlistView;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        xlistView = (XListView) findViewById(R.id.xlistView);

        // 下拉刷新是否激活

        xlistView.setPullRefreshEnable(true);

        // 加载更多是否激活

        xlistView.setPullLoadEnable(true);

        // xlistView刷新和加载更多的监听

        xlistView.setXListViewListener(this);

        getData(1,refresh);

    }

max_behot_time=1465886546

    public void getData(final int i,String path) {

        HttpUtils httpUtils = new HttpUtils();

        

        httpUtils.configCurrentHttpCacheExpiry(0);

        

        httpUtils.send(HttpMethod.GET, path, new RequestCallBack<String>() {

            @Override

            public void onFailure(HttpException arg0, String arg1) {

            }

            @Override

            public void onSuccess(ResponseInfo<String> arg0) {

                String result = arg0.result;

                Gson gson = new Gson();

                Data data = gson.fromJson(result, Data.class);

                Message msg = Message.obtain();

                msg.obj = data.getData();

                msg.what = i;

                handler.sendMessage(msg);

            }

        });

    }

    // 停止加载更多/刷新

    public void loadOver() {

        // 停止加载更多

        xlistView.stopLoadMore();

        // 停止刷新

        xlistView.stopRefresh();

        //设置刷新时的时间

        xlistView.setRefreshTime(getTime());

        

        

    }

    /**

     * 刷新

     */

    @Override

    public void onRefresh() {

        getData(2,refresh);

    }

    /**

     * 加载更多

     */

    @Override

    public void onLoadMore() {

        getData(3,more);

    }

public String getTime(){

    

    

    SimpleDateFormat format=new SimpleDateFormat("hh:mm:ss");

    

    Date date=new Date();

    String time = format.format(date);

    return time;

    

    

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  HttpUtils和XListView