zoukankan      html  css  js  c++  java
  • threed+handler解析gson文件,并且上拉加载,下拉刷新

    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();
                }
                
            };
    }

    再加上适配器,这些就可以刷新出新的数据了

  • 相关阅读:
    ThreadLocal Thread ThreadLocalMap 之间的关系
    组合注解(Annotation)
    Halo 开源项目使用jsdelivr进行CDN加速.
    如何正确认知和提升自己的“格局”“视野”“高度”?
    格局如何提高?站在未来看今天。
    Cookie 的技术学习笔记
    JVM垃圾收集器与内存分配策略
    java内存区域与内存溢出异常
    JAVA中的BIO,NIO与多路复用(select,poll,epoll)
    Hexo yilia主题搭建自己的github个人博客(一)
  • 原文地址:https://www.cnblogs.com/123p/p/5453075.html
Copyright © 2011-2022 走看看