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

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
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小妖sc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值