上拉XML

来源:互联网 发布:网络文档 编辑:程序博客网 时间:2024/06/08 00:26
package com.example.xiangmuexml;

import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.LinkedList;

import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import me.maxwin.XListViewActivity;
import me.maxwin.view.XListView;

public class MainActivity extends XListViewActivity {
    
    int i = 0;
    private LinkedList<Bean1> list;
    private XListView xlv;
    private LinkedList<Bean1> newlist=new LinkedList<Bean1>();
    
    private Handler handler = new Handler() {
    
    
        private MyAdapter adapter;

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

            switch (msg.what) {
            case 1:
                newlist = list;
                adapter = new MyAdapter(MainActivity.this, newlist);

                xlv.setAdapter(adapter);
                break;
            // 刷新
            case 2:
                newlist.clear();
                for (Bean1 news : list) {
                    // 向开头添加
                    newlist.addFirst(news);
                }
                // 刷新适配器
                adapter.notifyDataSetChanged();
                close();
                break;
            // 加载更多
            case 3:

                for (Bean1 news : list) {
                    // 向结尾添加
                    newlist.addLast(news);
                }
                // 刷新适配器
                adapter.notifyDataSetChanged();
                close();
                break;
            }

        };

    };
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        xlv=(XListView)findViewById(R.id.xlistView);
        xlv.setPullLoadEnable(true);
        xlv.setPullRefreshEnable(true);
        xlv.setXListViewListener(this);
        initData(1);
        
    }
    private void initData(final int index) {
        final String path = "http://www.oschina.net/action/api/news_list?catalog=1&pageIndex="
                + i;
        new Thread() {

            public void run() {
                try {
                    URL url = new URL(path);
                    URLConnection connection = url.openConnection();
                    InputStream inputStream = connection.getInputStream();
                    list = PullParserUtiuls.getXml(inputStream);
                    Log.e("Log",list.size()+"");
                    handler.sendEmptyMessage(index);
                } catch (Exception e) {
                    e.printStackTrace();
                }

            };

        }.start();

    }

    @Override
    public void onRefresh() {
        i++;
        initData(2);
    }

    @Override
    public void onLoadMore() {
        i++;
        initData(3);
    }

    public void close() {
        xlv.stopLoadMore();
        xlv.stopRefresh();

    }
}
0 0
原创粉丝点击