文档章节

pulltorefresh 上拉刷新 下拉加载

 阿狸的青春
发布于 2016/05/04 16:26
字数 358
阅读 16
收藏 0
MainActivity


package com.example.yuekaoliaxi_demo01;

import gson_vo.Book;
import gson_vo.Data;

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.google.gson.Gson;
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;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;

public class HomeActivity extends Activity {
    private int pn;
    private String url="http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&rn=10&catalog_id=";
    private String id,str;
    private MyBase base;
    private PullToRefreshGridView grid;
      private List<Book> data;
      private List<Book> datas=new ArrayList<Book>();
    private Handler  handler=new Handler(){
        public void handleMessage(android.os.Message msg) {
            switch (msg.what) {
            case 0:
                msg.obj=str;
                Gson gson=new Gson();
                Data  da=gson.fromJson(str, Data.class);
                data=da.getResult().getData();
                base=new MyBase(data, HomeActivity.this);
                grid.setAdapter(base);
                
                break;
//下拉
            case 1:
                msg.obj=str;
                Gson gson1=new Gson();
                Data  da1=gson1.fromJson(str, Data.class);
                if(da1!=null){
                
                data=da1.getResult().getData();
                base=new MyBase(data, HomeActivity.this);
                grid.setAdapter(base);
                base.notifyDataSetChanged();
                grid.onRefreshComplete();
                }
                break;
            case 2:
                msg.obj=str;
                Gson gson2=new Gson();
                Data  da2=gson2.fromJson(str, Data.class);
                if(da2!=null){
                    List<Book>    datas=da2.getResult().getData();
                    data.addAll(datas);
                 // base=new MyBase(datas, HomeActivity.this);
                //grid.setAdapter(base);
                base.notifyDataSetChanged();
                grid.onRefreshComplete();
                }
                break;
            }
            
            
        };
    };
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.home);
    grid=(PullToRefreshGridView) findViewById(R.id.grid);
Intent  in=getIntent();
id=(String) in.getSerializableExtra("aaa");
Log.i("aaa", "/////"+id);
grid.setMode(Mode.BOTH);
new Thread(){
    public void run() {
        url=url+id;
        getClinet();
          handler.sendMessage(handler.obtainMessage(0,str));
    }

    
}.start();
grid.setOnRefreshListener(new OnRefreshListener2() {

    @Override
    public void onPullDownToRefresh(PullToRefreshBase refreshView) {
        // TODO Auto-generated method stub
        pn++;
        new Thread(){
            public void run() {
                
                url=url+id+"&pn="+pn;
                getClinet();
                 handler.sendMessage(handler.obtainMessage(1,str));
            };
            
            
        }.start();
        
    }

    @Override
    public void onPullUpToRefresh(PullToRefreshBase refreshView) {
        // TODO Auto-generated method stub
        pn++;
        new Thread(){
            public void run() {
                
                url=url+id+"&pn="+pn;
                getClinet();
                 handler.sendMessage(handler.obtainMessage(2,str));    
                
                
            };
            
            
        }.start();
        
    }
});
}
private void getClinet() {
    // 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();
    }
    
};
}


© 著作权归作者所有

粉丝 0
博文 18
码字总数 8352
作品 0
海淀
私信 提问
使用PullToRefresh实现下拉刷新和上拉加载

PullToRefresh是一套实现非常好的下拉刷新库,它支持:1.ListView2.ExpandableListView3.GridView4.WebView等多种常用的需要刷新的View类型,而且使用起来也十分方便。(下载地址:https://g...

ForingY
2016/12/19
49
0
Jaynm/PullToRefreshListView

PullToRefreshScrollViewDemo Android使用PullToRefresh完成ListView下拉刷新和左滑删除 一、本文主要内容: 使用PullToRefresh完成ListView下拉、上拉刷新; 扩展PullToRefresh完美的实现L...

Jaynm
2016/11/03
0
0
PullToRefreshListView 应用讲解

转载于http://blog.csdn.net/mmjiajia132/article/details/40397813 PullToRefreshListView 用法和ListView 没有什么区别 listview能用的属性 pulltorefresh也能用 我一直认为动手是最好的学...

程序袁_绪龙
2015/08/02
206
0
那些年不容错过的智能下拉刷新加载框架

一些值得学习的几个下拉刷新上拉加载开源库 功能齐全的AnimRefreshRecyclerView 根据列表的不同效果选择不同的布局管理器 根据不同的布局管理器设置分割线: 设置Header和Footer 手动刷新 An...

codeGoogle
2017/09/26
0
0
Android之PullToRefresh的使用方法

android studio 导入 PullToRefresh 使用 PullToRefresh 刷新 ListView ---------------------------------------------------------------------------------------上面转载自点击查看如果需......

有名者赫赫
2015/04/18
14.5K
0

没有更多内容

加载失败,请刷新页面

加载更多

ES6

ES6:不改变原理的基础上,让API变得更简单 一、let:代替var用于声明变量 1、var的缺点: (1)声明提前 (2)没有块级作用域 2、let的优点: (1)组织了申明提前 (2)让let所在的块({}),...

wytao1995
今天
3
0
kubernetes 环境搭建 —— minikube

创建集群 minikube start 搭建好 k8s 集群后,可以查看集群的状态以及部署应用。主要用到的是 k8s 的 api,这通常需借助于 kutectl 命令行工具 基本操作 kubectl versionkubectl cluster-i...

lemos
今天
9
0
关于js混淆与反混淆还原操作

使用js的混淆加密,其目的是为了保护我们的前端代码逻辑,对应一些搞技术吃饭的公司来说,为了防止被竞争对手抓取或使用自己的代码,就会考虑如何加密,或者混淆js来达到代码保护。 1、为什么...

开源oschina
今天
11
0
用盛金公式解三次方程(ansi c版)

/* cc cubic.c -lm gcc cubic.c -lm Shengjin's Formulas Univariate cubic equation aX ^ 3 + bX ^ 2 + cX + d = 0, (a, b, c, d < R, and a!= 0). Multiple root disc......

wangxuwei
今天
9
0
JBolt开发平台入门(16)- 弹出Dialog显示指定区域的html内容

在JBolt里,有个主从表Demo。 子表中除了普通的table显示,还有其它从表显示形式 比如下方案例:是针对一个升级管理子表中存放版本的changelog富文本信息。 需求是点击左上角的弹出查看按钮,...

山东-小木
今天
46
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部