Xlistview

来源:互联网 发布:红旗linux系统下载iso 编辑:程序博客网 时间:2024/04/24 19:34
package com.bwie.test.slidingmenu;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.widget.ArrayAdapter;

import com.bwie.test.MainActivity;
import com.bwie.test.R;
import com.bwie.test.adapter.MyAdapter;
import com.bwie.test.bean.ClassBean;
import com.bwie.test.bean.ListInfo;
import com.bwie.test.xlistview.XListView;
import com.bwie.test.xlistview.XListView.IXListViewListener;
import com.google.gson.Gson;

public class TestActivity1 extends Activity implements IXListViewListener {

    /**
     * 打印LOG的标签
     */
    private static final String TAG = MainActivity.class.getSimpleName();

    private XListView mListView;

    private ArrayAdapter<String> mAdapter;

    private ArrayList<ListInfo> items = new ArrayList<ListInfo>();

    private Handler mHandler;

    private int start = 0;
    private int count = 1;
    private MyAdapter adapter;
    private ArrayList<ListInfo> list;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tab_activity_1);
        // 开启子线程进行网络加载
        new Thread() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                super.run();
                HttpGet hg = new HttpGet(
                        "http://api.sina.cn/sinago/list.json?channel=hdpic_story&adid=4ad30dabe134695c3b7c3a65977&wm=b207&from=6042095012&chwm=12050_0001&oldchwm=12050_0001&imei=867064013906290&uid=802909da86d9f5fc&p=1");
                HttpClient hc = new DefaultHttpClient();
                try {
                    HttpResponse response = hc.execute(hg);
                    if (response.getStatusLine().getStatusCode() == 200) {
                        InputStream is = response.getEntity().getContent();

                        InputStreamReader isr = new InputStreamReader(is);
                        BufferedReader buf = new BufferedReader(isr);
                        StringBuffer sbf = new StringBuffer();
                        String str;
                        while ((str = buf.readLine()) != null) {
                            sbf.append(str);

                        }

                        Gson gs = new Gson();
                        ClassBean cb = gs.fromJson(sbf.toString(),
                                ClassBean.class);
                        Message ms = handler.obtainMessage(1, cb.getData()
                                .getList());
                        handler.sendMessage(ms);

                    }
                } catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }

        }.start();

        mHandler = new Handler();

        geneItems();

        mListView = (XListView) findViewById(R.id.xListView);
        mListView.setPullLoadEnable(true);


        // mListView.setPullLoadEnable(false);
        // mListView.setPullRefreshEnable(false);

        mListView.setXListViewListener(this);

    }

    // listview 的数据
    private void geneItems() {

    }

    // 停止刷新,重置header view
    @Override
    public void onRefresh() {
        mHandler.postDelayed(new Runnable() {
            @Override
            public void run() {

                geneItems();
                adapter.notifyDataSetInvalidated();

                onLoad();
            }
        }, 2000);
    }

    // 停止加载更多,重置footer view
    @Override
    public void onLoadMore() {
        mHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
                geneItems();
                items.clear();
                count++;
                //一次加载10条
                for (int i = 0; i < count * 5; i++) {
                    items.add(list.get(i));
                    if (i == list.size() - 1) {
                        break;
                    }
                }

                adapter.notifyDataSetChanged();
                onLoad();
            }
        }, 2000);
    }

    private void onLoad() {
        mListView.stopRefresh();
        mListView.stopLoadMore();
        mListView.setRefreshTime("刚刚");// 设置上次刷新的时间
    }

    Handler handler = new Handler() {

        @Override
        public void handleMessage(Message msg) {
            // TODO Auto-generated method stub
            super.handleMessage(msg);
            if (msg.what == 1) {
                list = (ArrayList<ListInfo>) msg.obj;
                items.clear();
                // 一次十条
                for (int i = 0; i < 5; ++i) {
                    items.add(list.get(i));
                }

                adapter = new MyAdapter(TestActivity1.this, items);

                Log.i("JEIXI-------------->", list.toString());
                mListView.setAdapter(adapter);

            }

        }

    };
}
0 0
原创粉丝点击