上拉加载,下拉刷新以及集合堆叠效果

来源:互联网 发布:网络电影疯狂小镇 编辑:程序博客网 时间:2024/06/05 04:36
package com.baway.test;

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.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.baway.test.bean.Book;
import com.baway.test.bean.MyData;
import com.baway.test.bean.Reasultt;
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.os.Message;
import android.widget.GridView;

public class TwoActivity extends Activity {

    private String id;
    private PullToRefreshGridView gv;
    private List<Book> data;
    private Handler handler=new Handler(){
        public void handleMessage(Message msg) {
            
                List<Book> book_list=(List<Book>) msg.obj;
            
                for(Book  b:book_list){
                    list_list.addAll(book_list);
                }
            
                adapter.notifyDataSetChanged();
                gv.onRefreshComplete();
            
        };
    };
    private List<Book> list_list;
    private MyGvAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //加载布局
        setContentView(R.layout.activity_two);
        
        list_list = new ArrayList<>();
        
        
        //获得传过来的值
        Intent intent = getIntent();
        id = intent.getStringExtra("id");
        
        initData();
        
        adapter = new MyGvAdapter(TwoActivity.this,list_list);
        
        gv = (PullToRefreshGridView) findViewById(R.id.two_gv);
        gv.setMode(Mode.BOTH);
          gv.setAdapter(adapter);
        gv.setOnRefreshListener(new OnRefreshListener2<GridView>() {

            @Override
            public void onPullDownToRefresh(
                    PullToRefreshBase<GridView> refreshView) {
                // TODO Auto-generated method stub
                initData();
                
            }

            @Override
            public void onPullUpToRefresh(
                    PullToRefreshBase<GridView> refreshView) {
                // TODO Auto-generated method stub
                initData();
            }
        });
    }

    //请求数据
    private void initData() {
        // TODO Auto-generated method stub
        new Thread(){
            

            public void run() {
                try {
                    HttpClient client=new DefaultHttpClient();
                    HttpGet get=new HttpGet("http://apis.juhe.cn/goodbook/query?key=d82140229634dacc6a1908e65c767d76&catalog_id="+id+"&rn=10");
                    HttpResponse response = client.execute(get);
                    HttpEntity entity = response.getEntity();
                    String content = EntityUtils.toString(entity, "utf-8");
                    
                    Gson gson=new Gson();
                    MyData fromJson = gson.fromJson(content, MyData.class);
                    Reasultt result = fromJson.getResult();
                    data = result.getData();
                    
                    Message msg=Message.obtain();
                    msg.obj=data;
                    
                    handler.sendMessage(msg);
                  
                } catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
            };
        }.start();
        
    }
}

0 0
原创粉丝点击