protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.books);
//找到布局中控件的id
p = (PullToRefreshGridView) findViewById(R.id.lv);
//网络请求数据
getBooks();
p.onRefreshComplete();//设置下拉
p.setMode(Mode.BOTH);//显示
//事件监听方法
@Override
public void onRefresh(PullToRefreshBase<GridView> refreshView) {
// TODO Auto-generated method stub
//判断是下拉还是上拉
if(p.isHeader()){
up = 0;
pn += 1;
//重新调用请求
getBooks();
}
if(p.isFooter()){
up = 1;
rn += 1;
getBooks();
}
p.onRefreshComplete();
}
});
}
//数据请求
// TODO Auto-generated method stub
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
HttpClient hc=new DefaultHttpClient();
HttpGet get=new HttpGet("你的URL");
HttpResponse execute = hc.execute(get);
HttpEntity entity = execute.getEntity();
String json = EntityUtils.toString(entity, "UTF-8");
Gson gson=new Gson();
Books_Dates fromJson = gson.fromJson(json, Books_Dates.class);
Message msg=new Message();
msg.obj = fromJson;
handler.sendMessage(msg);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
//设置刷新与加载后的显示
private Handler handler=new Handler(){
private LinkedList<Data> link;
public void handleMessage(android.os.Message msg) {
Books_Dates datas = (Books_Dates) msg.obj;
if(isFlag){
link = datas.getResult().getData();
my = new MyAdapter(link, Books.this);
p.setAdapter(my);
isFlag = false;
}else{
LinkedList<Data> ll = datas.getResult().getData();
if(up == 0){
for (Data data : ll) {
link.addFirst(data);
}
my.notifyDataSetChanged();
}else{
for (Data data : ll) {
link.add(data);
}
my.notifyDataSetChanged();
}
}
}
};
//布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.handmark.pulltorefresh.library.PullToRefreshGridView
android:id="@+id/lv"
android:layout_width="match_parent"
android:numColumns="3"
android:layout_height="match_parent"
/>
</LinearLayout>