Android上拉加载下拉刷新(使用第三方类库实现的)
2016-06-01 16:33
281 查看
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();
}
}
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();
}
}
相关文章推荐
- Android显示Gif动图
- unable to resolve target android 21
- android studio2安装及配置
- android gps定位LocationManager
- android中异步任务
- Android异步回调中的UI同步性问题分析
- Android学习笔记六十一:Toast(示例,出错代码)
- android Error:Error: File path too long on Windows, keep below 240 characters
- Android 仿QQ好友分组列表、ExpandableListView的使用详解
- 安卓自定义布局实现
- Java 8+Android M新特性总结(简略版)
- Java4Android第11课:内部类和匿名内部类
- Android 应用签名工具----酷传
- android 跨进程通讯详解
- Android布局技巧之使用ViewStub
- android 拍照,存储在指定目录下核心代码
- 安卓折叠视图
- 不常用的adb命令(Android编程实战)
- Android 系统状态栏沉浸式/透明化完整解决方案
- Android梳理 前言