標籤:
ThreeActivity.class:
package com.example.yuekao_one_try;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.StatusLine;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;import com.example.vo.DataDemo;import com.example.vo.Demo;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;import com.handmark.pulltorefresh.library.PullToRefreshGridView;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.widget.GridView;public class ThreeActivity extends Activity{ private PullToRefreshGridView grid_view; private List<Demo> data=new ArrayList<Demo>(); private int p=10; private int z=10; private Mybasetwo base; private String str; private String url="http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&catalog_id=246&rn=50&rn="; private int i=1; private Handler handler=new Handler(){ public void handleMessage(android.os.Message msg) { switch (msg.what) { case 0: base=new Mybasetwo(data, getApplicationContext()); grid_view.setAdapter(base); break; case 3: base=new Mybasetwo(data, getApplicationContext()); grid_view.setAdapter(base); base.notifyDataSetChanged(); grid_view.onRefreshComplete(); break; case 4: base=new Mybasetwo(data, getApplicationContext()); grid_view.setAdapter(base); grid_view.onRefreshComplete(); break; default: break; } }; }; protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.grid); grid_view=(PullToRefreshGridView) findViewById(R.id.grid_view); grid_view.setMode(Mode.BOTH); init(); grid_view.setOnRefreshListener(new OnRefreshListener<GridView>() { @Override public void onRefresh(PullToRefreshBase<GridView> refreshView) { // TODO Auto-generated method stub i++; new Thread(){ public void run() { url="http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&catalog_id=246&rn=50&rn="+i; getClient(); Gson g=new Gson(); DataDemo dd=g.fromJson(str, DataDemo.class); data=dd.getResult().getData(); handler.sendEmptyMessage(4); }; }.start(); } public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) { // TODO Auto-generated method stub i++; new Thread(){ public void run() { url="http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&catalog_id=246&rn=50&rn="+i; getClient(); Gson g=new Gson(); DataDemo dd=g.fromJson(str, DataDemo.class); List<Demo> list=dd.getResult().getData(); data.addAll(list); handler.sendEmptyMessage(3); }; }.start(); } }); } private void init() { // TODO Auto-generated method stub new Thread(){ public void run() { url="http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&catalog_id=246&rn=50&rn=10"; getClient(); Gson g=new Gson(); DataDemo dd=g.fromJson(str, DataDemo.class); data=dd.getResult().getData(); handler.sendEmptyMessage(0); }; }.start(); } private void getClient() { // TODO Auto-generated method stub HttpClient client=new DefaultHttpClient(); HttpGet get=new HttpGet(url); try { HttpResponse response=client.execute(get); StatusLine statusLine=response.getStatusLine(); int statusCode=statusLine.getStatusCode(); if(statusCode==200){ HttpEntity entity=response.getEntity(); str=EntityUtils.toString(entity,"utf-8"); } } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } };}
再加上適配器,這些就可以重新整理出新的資料了
threed+handler解析gson檔案,並且上拉載入,下拉重新整理