zoukankan      html  css  js  c++  java
  • 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);
        }

    }

  • 相关阅读:
    jmeter压测:failed (99: Cannot assign requested address) while connecting to upstream,问题解决
    linux主机设置免密登录
    linux环境 jdk+mysql+redis安装初始化步骤
    互联网系统设计原则
    LINUX运维常用命令
    性能测试岗位常见面试题
    查看电脑已连接过的WIFI密码
    Jenkins安装后,安装插件失败。报错SunCertPathBuilderException
    【java】javac命令在win10不可用,提示javac不是内部或外部命令,也不是可运行的程序【解决方法】
    .NET跨平台实践:.NetCore、.Net5/6 Linux守护进程设计
  • 原文地址:https://www.cnblogs.com/weiyangge/p/5316935.html
Copyright © 2011-2022 走看看