关闭

Android上拉加载下拉刷新(使用第三方类库实现的)

标签: android之下拉刷新上拉加载第三方类库实现上拉加载下拉刷新
588人阅读 评论(0) 收藏 举报
package com.example.android_pullxml;


import java.util.ArrayList;
import java.util.List;


import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;


import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.GridView;


import com.example.android_pullxml.adapter.MyListAdapter;
import com.example.android_pullxml.bean.HttpUtils;
import com.example.android_pullxml.bean.MyData.Datas;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2;
import com.handmark.pulltorefresh.library.PullToRefreshGridView;


public class TwoActivity extends Activity {
private PullToRefreshGridView gv;
private Handler handler = new Handler() {


@Override
public void handleMessage(Message msg) {
List<Datas> list1 = (List<Datas>) msg.obj;
if (msg.what == 0) {
for (Datas data : list1) {
listSum.add(0, data);
}
} else {
for (Datas data : list1) {
listSum.add(list1.size(), data);
}
}
adapter.notifyDataSetChanged();
gv.onRefreshComplete();
}


};
private MyListAdapter adapter;
private List<Datas> list;
private ArrayList<Datas> listSum;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
//
listSum = new ArrayList<Datas>();
gv = (PullToRefreshGridView) findViewById(R.id.ptrg);
gv.setMode(Mode.BOTH);
initData(0);
if (listSum != null) {


adapter = new MyListAdapter(TwoActivity.this, listSum);
gv.setAdapter(adapter);
}
gv.setOnRefreshListener(new OnRefreshListener2<GridView>() {


@Override
public void onPullDownToRefresh(
PullToRefreshBase<GridView> refreshView) {
initData(0);
}


@Override
public void onPullUpToRefresh(
PullToRefreshBase<GridView> refreshView) {
initData(1);
}
});
}


/**
* isflag为0时则让他下拉刷新,为1时则让他上拉加载
* */
private void initData(final int isflag) {


new Thread() {


@Override
public void run() {
super.run();
String json = HttpUtils
.getJson("http://apis.juhe.cn/goodbook/query?key=bfd6d2b411ee7f32b8c7b04a30901220&catalog_id="
+ getIntent().getStringExtra("catalog_id")
+ "&rn=10");
try {
JSONObject obj = new JSONObject(json);
JSONObject object = obj.getJSONObject("result");


JSONArray array = object.getJSONArray("data");
Gson gs = new Gson();
list = gs.fromJson(array.toString(),
new TypeToken<List<Datas>>() {
}.getType());
Message msg = Message.obtain();
msg.obj = list;
msg.what = isflag;
handler.sendMessage(msg);
} catch (JSONException e) {
e.printStackTrace();
}


}


}.start();
}
}
0
0
查看评论

下拉刷新和上拉加载更多第三方库

  • 2014-12-08 16:08
  • 28KB
  • 下载

第三方开源库:下拉刷新和上拉加载更多:PullLoadMoreRecyclerView + CommonPullToRefresh + SpringView+。。。

第一种: CommonPullToRefresh CommonPullToRefresh 具体的使用方法不写了,这里开发者头条(五):实现recyclerview的上拉加载 + 下拉刷新 用到了第二种:PullLoadMoreRecyclerViewgithub地址:PullLoadMoreRec...
  • ss1168805219
  • ss1168805219
  • 2016-12-10 16:56
  • 5072

android 打造真正的下拉刷新上拉加载recyclerview(三):下拉刷新上拉加载

这篇文章主要对WZMRecyclerView的上拉刷新和下拉加载部分,从思路、实现方式、问题解决三个方面进行了介绍。
  • anyfive
  • anyfive
  • 2016-11-04 16:04
  • 2288

Android-PullToRefresh下拉刷新,上拉加载的使用详解

在Android开发中下拉刷新,上拉加载这个功能是一般商业应用的App中必不可少的一个功能效果。但是对于新手来说,自定义下拉刷新的ListView可能还是会遇到很多的问题。而对于要快速开发的公司来说,可能时间又比较紧张。那么这时候我们就要用到一个开源控件Android-PullToRefresh了。...
  • liubcsdn
  • liubcsdn
  • 2016-09-19 09:55
  • 3371

下拉刷新、上拉加载实战:带你理解自定义View整个过程

下拉刷新、上拉加载实战:带你理解自定义View整个过程@(Android)下拉刷新上拉加载实战带你理解自定义View整个过程 参考文章 写在前面的话 效果图 Github地址 正式开始 第一步添加Header和Footer并隐藏 onFinishInflate onMeasure onLayout ...
  • u013647382
  • u013647382
  • 2017-02-27 15:18
  • 2540

安卓实现下拉刷新上拉加载

前言Android智能下拉刷新框架-SmartRefreshLayout 是github 上的一个开源框架,地址https://github.com/scwang90/SmartRefreshLayout 我做的几个项目用的都是这个框架,挺好用的。介绍正如名字所说,SmartRefreshLayo...
  • baidu_38477614
  • baidu_38477614
  • 2017-12-22 13:34
  • 219

自个儿写Android的下拉刷新/上拉加载控件

前段时间自己写了一个能够“通用”的,支持下拉刷新和上拉加载的自定义控件。可能现如今这已经不新鲜了,但有兴趣的朋友还是可以一起来看看的。 与通常的View配合使用(比如ImageView)与ListView配合使用与RecyclerView配合使用与SrcollView配合使用局部刷新(但想必这种需要...
  • ghost_Programmer
  • ghost_Programmer
  • 2016-09-27 16:58
  • 6162

RecyclerView下拉刷新上拉加载

作为ListView和GridView的替代者, RecyclerView以它的灵活性著称,而且有着更好更完善的缓存处理机制。但是在使用RecyclerVew的过程中有个很明显的问题:RecyclerView没有为开发者提供addHeadView和addFooterView两个接口,这就为...
  • huyongl1989
  • huyongl1989
  • 2016-06-30 11:36
  • 3530

Android自定义控件——ListView的下拉刷新与上拉加载

无疑,在Android开发中,ListView是使用非常频繁的控件之一,ListView提供一个列表的容易,允许我们以列表的形式将数据展示到界面上,但是Google给我们提供的原生ListView的控件,虽然在功能上很强大,但是在用户体验和动态效果上,还是比较差劲的。为了改善用户体验,市面上纷纷出现...
  • lee_tianya
  • lee_tianya
  • 2014-10-10 20:14
  • 17290

Android下拉刷新上拉加载控件,对所有View通用!

前面写过一篇关于下拉刷新控件的博客下拉刷新控件终结者:PullToRefreshLayout,后来看到好多人还有上拉加载更多的需求,于是就在前面下拉刷新控件的基础上进行了改进,加了上拉加载的功能。不仅如此,我已经把它改成了对所有View都通用!可以随心所欲使用这两个功能~~ 我做了一个大集合...
  • zhongkejingwang
  • zhongkejingwang
  • 2014-08-27 13:07
  • 45345
    个人资料
    • 访问:41333次
    • 积分:644
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:18篇
    • 译文:0篇
    • 评论:4条
    最新评论