Xlistview的应用1(上拉刷新,下拉加载)fragment

package fragment;

import java.io.IOException;
import java.util.List;

import org.apache.http.HttpEntity;
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 org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;

import vo.Super;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;

import com.ce.adapter.List_Adapter;
import com.ce.jinritoutiao.Info;
import com.ce.jinritoutiao.R;
import com.ce.xlistview.XListView;
import com.ce.xlistview.XListView.IXListViewListener;
import com.exmple.vo.MyData;
import com.google.gson.Gson;

public class F1 extends Fragment implements IXListViewListener {
    String st2;

    public F1(String st2) {
        super();
        this.st2 = st2;
    }

    public F1() {
        super();
    }
    private List<MyData> ll;
    private XListView xlistview;
    private List<MyData> list;
    private Handler handler2;
    private List_Adapter adapter;
    Handler handler = new Handler() {

        public void handleMessage(android.os.Message msg) {
            int i = msg.what;
            if (i == 1) {// 刷新
                ll = (List<MyData>) msg.obj;
                adapter = new List_Adapter(getActivity(), ll);
                xlistview.setAdapter(adapter);

            } else if (i == 2) {
                // 加载
                // adapter = new List_Adapter(getActivity(), list);
                List<MyData> l = (List<MyData>) msg.obj;
                ll.addAll(l);

            } else {
                adapter = new List_Adapter(getActivity(), list);
                xlistview.setAdapter(adapter);
      ll = list;
            }
            adapter.notifyDataSetChanged();
        };
    };

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = View.inflate(getActivity(), R.layout.f1, null);
        xlistview = (XListView) view.findViewById(R.id.xlistview);
        xlistview.setPullLoadEnable(true);// 设置让它上拉,FALSE为不让上拉,便不加载更多数据
        xlistview.setPullRefreshEnable(true);
        xlistview.setXListViewListener(this);// 监听

        handler2 = new Handler();
        getData("0");
        // 给listview设置点击事件
        xlistview.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                // 跳转到详情界面
                Intent intent = new Intent(getActivity(), Info.class);
                // 将详情的url传过去
                intent.putExtra("url", list.get(position).getDisplay_url());
                startActivity(intent);

            }
        });

        return view;
    }

    // 开启线程请求数据
    public List<MyData> getData(final String s) {
        new Thread() {
            private String str;

            public void run() {
                str = getJsonFromWeb(st2);
                Gson gs = new Gson();
                Super su = gs.fromJson(str, Super.class);

                if (su != null) {
                    list = su.getData();
                }

                if (s.equals("刷新")) {
                    handler.sendMessage(handler.obtainMessage(1, list));
                }
                if (s.equals("加载")) {
                    handler.sendMessage(handler.obtainMessage(2, list));
                } else {
                    handler.sendMessage(handler.obtainMessage(3, list));
                }

            };
        }.start();
        return list;

    }

    // 解析数据
    public static String getJsonFromWeb(String ur) {

        String result = "";
        StringBuffer str = new StringBuffer(ur);

        HttpGet get = new HttpGet(str.toString());
        HttpParams parms = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(parms, 200000);
        HttpConnectionParams.setSoTimeout(parms, 200000);
        HttpClient client = new DefaultHttpClient(parms);
        try {
            HttpResponse execute = client.execute(get);
            if (execute.getStatusLine().getStatusCode() == 200) {
                HttpEntity entity = execute.getEntity();
                result = EntityUtils.toString(entity, "utf-8");

            }

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

        return result;

    }

    public void onLoad() {
        xlistview.stopRefresh();
        xlistview.stopLoadMore();
        xlistview.setRefreshTime("刚刚");
    }

    // 刷新
    public void onRefresh() {
        handler2.postDelayed(new Runnable() {
            public void run() {
                getData("刷新");
                xlistview.setAdapter(adapter);
                onLoad();
            }
        }, 2000);
    }

    // 加载更多
    public void onLoadMore() {
        handler2.postDelayed(new Runnable() {

            public void run() {
                getData("加载");
                adapter.notifyDataSetChanged();
                onLoad();
            }
        }, 2000);
    }

}

原文地址:https://www.cnblogs.com/weiyangge/p/5316935.html