xlistview 上拉刷新 下拉加载

//判断是否联网
//切记加权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
protected void onPostExecute(String s) {
    super.onPostExecute(s);
    ConnectivityManager cm= (ConnectivityManager) getActivity()
     .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo nk = cm.getActiveNetworkInfo();
    String result=dao.query();
    boolean s1 = preferences.getBoolean("f", false);
    if(nk!=null){
        if(preferences.getBoolean("f",false)){
            jiexi(s);
            dao.update("shouye",s);
        }else {
            preferences.edit().putBoolean("f",true).commit();
            dao.add("shouye",s);
            jiexi(s);
        }
    }
    else {
        s=dao.query();
        jiexi(s);
    }

private void jiexi(String s) { try { JSONObject json=new JSONObject(s); JSONObject result = json.getJSONObject("result"); JSONArray bookList = result.getJSONArray("bookList"); for (int i = 0; i <bookList.length() ; i++) { JSONObject b= (JSONObject) bookList.get(i); Book book= new Book(); book.name=b.getString("name"); book.area=b.getString("area"); book.coverImg=b.getString("coverImg"); books1.add(book); } if(books1!=null){ books=new ArrayList<>(); books = getItems(books1); ad= new Mylv(); xlist.setAdapter(ad); } } catch (Exception e) { e.printStackTrace(); }
//方法
@Override
public void onRefresh() {
    h.postDelayed(new Runnable() {
        @Override
        public void run() {
            start=0;
            books.clear();
            books1.clear();
            xlist.setPullLoadEnable(true);
            new Myasynctask().execute(url);
            ad.notifyDataSetChanged();
            onload();
        }
    }, 2000);
}
@Override
public void onLoadMore() {
    h.postDelayed(new Runnable() {
        @Override
        public void run() {
            start+=5;
            books = getItems(books1);
            ad.notifyDataSetChanged();
            onload();
        }
    }, 2000);
}
private List<Book> getItems(List<Book> books1) {
    if(start+10>=books1.size()){
        start=books1.size();
        xlist.setPullLoadEnable(false);
        Toast.makeText(getActivity(), "已经是全部数据", Toast.LENGTH_SHORT).show();
        start=0;
        books=books1;
    }else {
        books.clear();
        for (int i = 0; i < start + 10; i++) {
            books.add(books1.get(i));
        }
    }
    return books;
}

private void onload() {
    xlist.stopRefresh();
    xlist.stopLoadMore();
    SimpleDateFormat formatter   =   new   SimpleDateFormat   ("HH:mm:ss");
    Date curDate =  new Date(System.currentTimeMillis());
    String   str   =   formatter.format(curDate);
    xlist.setRefreshTime(str);
};

//适配器
class Mylv extends BaseAdapter{
    private final  int a=0;
    private final  int b=1;
    private final  int num=2;
    @Override
    public int getCount() {
        return books.size();
    }
    @Override
    public int getViewTypeCount() {
        return num;
    }
    @Override
    public int getItemViewType(int position) {
        if(books.get(position).area.equals("国漫")){
            return a;
        }else {
            return b;
        }

    }
    @Override
    public Object getItem(int i) {
        return books.get(i);
    }
    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        int type = getItemViewType(i);
        viewholder1 holder1=null;
        viewholder2 holder2=null;
        if(view==null){
        switch (type) {
            case a:
                holder1 = new viewholder1();
                view = View.inflate(getActivity(), R.layout.xlist_a, null);
                view.setTag(holder1);
                holder1.tv_area1 = view.findViewById(R.id.tv_area1);
                holder1.tv_title1 = view.findViewById(R.id.tv_title1);
                holder1.img_pic1 = view.findViewById(R.id.img_pic1);
                break;
            case b:
                holder2 = new viewholder2();
                view = View.inflate(getActivity(), R.layout.xlist_b, null);
                view.setTag(holder2);
                holder2.tv_area2 = view.findViewById(R.id.tv_area2);
                holder2.tv_title2 = view.findViewById(R.id.tv_title2);
                holder2.img_pic2 = view.findViewById(R.id.img_pic2);
                break;
        }
        }else{
              switch (type) {
                case a:
                    holder1 = (viewholder1) view.getTag();
                    break;
                case b:
                    holder2=(viewholder2) view.getTag();
                    break;
            }
        }
        switch (type) {
            case a:
                holder1.tv_title1.setText(books.get(i).name);
                holder1.tv_area1.setText(books.get(i).area);
                ImageLoader.getInstance().displayImage(books.get(i).coverImg,holder1.img_pic1);
                break;
            case b:
                holder2.tv_title2.setText(books.get(i).name);
                holder2.tv_area2.setText(books.get(i).area);
                ImageLoader.getInstance().displayImage(books.get(i).coverImg,holder2.img_pic2);
                break;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值