PullToRefreshGridView

<com.handmark.pulltorefresh.library.PullToRefreshGridView
        android:id="@+id/pull_refresh_grid"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:columnWidth="100dp"
        android:gravity="fill"
        android:horizontalSpacing="1dp"
        android:numColumns="auto_fit"
        android:stretchMode="columnWidth"
        android:verticalSpacing="1dp" />

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

<?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" >

<ImageView
        android:id="@+id/grid_img1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

<TextView
        android:id="@+id/grid_textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

<TextView
        android:id="@+id/grid_textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

<TextView
        android:id="@+id/grid_textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

package com.bwie.yuekao;

import java.io.IOException;
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.bwie.yuekao.adapter.MyAdapter;
import com.bwie.yuekao.bean.JsonBean;
import com.bwie.yuekao.bean.JsonBean.ListResult;
import com.bwie.yuekao.bean.JsonBean.MyDatas;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnLastItemVisibleListener;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
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.text.format.DateUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ListView;
import android.widget.Toast;

public class SendActivity extends Activity {

Handler handler = new Handler() {
        public void handleMessage(android.os.Message msg) {

if (msg.what == 1) {
                String str = (String) msg.obj;
                gridfata(str);
            }

};
    };
    private String id;
    private int pn = 1;
    private int rn = 20;
    private PullToRefreshGridView pull_refresh_grid;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_send);

pull_refresh_grid = (PullToRefreshGridView) findViewById(R.id.pull_refresh_grid);

Intent intent = getIntent();

id = intent.getStringExtra("id");

getdata();

pull_refresh_grid
                .setOnRefreshListener(new OnRefreshListener<GridView>() {

@Override
                    public void onRefresh(
                            PullToRefreshBase<GridView> refreshView) {
                        // TODO Auto-generated method stub
                        String label = DateUtils.formatDateTime(
                                getApplicationContext(),
                                System.currentTimeMillis(),
                                DateUtils.FORMAT_SHOW_TIME
                                        | DateUtils.FORMAT_SHOW_DATE
                                        | DateUtils.FORMAT_ABBREV_ALL);
                        refreshView.getLoadingLayoutProxy()
                                .setLastUpdatedLabel(label);// 3.刷新界面处理代理,显示新的时间
                        getdata();
                    }
                });

// Add an end-of-list listener //5.设置上拉加载处理
        pull_refresh_grid
                .setOnLastItemVisibleListener(new OnLastItemVisibleListener() {

@Override
                    public void onLastItemVisible() {
                        // TODO Auto-generated method stub
                        getdata();
                        Toast.makeText(getApplicationContext(), "正在加载", 1)
                                .show();
                    }
                });

}

public void gridfata(String str) {
        Gson gson = new Gson();
        JsonBean fromJson = gson.fromJson(str, JsonBean.class);
        ListResult result = fromJson.result;
        List<MyDatas> data = result.data;

MyAdapter adapter = new MyAdapter(data, getApplicationContext());
        GridView actualListView = pull_refresh_grid.getRefreshableView();
        actualListView.setAdapter(adapter);
        adapter.notifyDataSetChanged();
        pn++;
        // Call onRefreshComplete when the list has been refreshed.
        pull_refresh_grid.onRefreshComplete();
    }

public void getdata() {

Toast.makeText(getApplicationContext(),
                "pn = " + pn + "    rn = " + rn, 0).show();

new Thread() {

@SuppressWarnings("deprecation")
            @Override
            public void run() {
                // TODO Auto-generated method stub
                super.run();

HttpClient client = new DefaultHttpClient();
                @SuppressWarnings("deprecation")
                HttpGet httpGet = new HttpGet(
                        "http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&catalog_id="
                                + id + "&rn=" + rn + "&pn=" + pn);
                try {
                    @SuppressWarnings("deprecation")
                    HttpResponse execute = client.execute(httpGet);

int statusCode = execute.getStatusLine().getStatusCode();
                    if (statusCode == 200) {
                        HttpEntity entity = execute.getEntity();
                        String json = EntityUtils.toString(entity);

Message msg = Message.obtain();
                        msg.what = 1;
                        msg.obj = json;
                        handler.sendMessage(msg);
                    }

} catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }.start();
    }

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

package com.bwie.yuekao.adapter;

import java.util.List;

import com.bwie.yuekao.R;
import com.bwie.yuekao.bean.JsonBean.MyDatas;
import com.nostra13.universalimageloader.core.ImageLoader;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MyAdapter extends BaseAdapter {

List<MyDatas> list;
    Context context;

public MyAdapter(List<MyDatas> list, Context context) {
        // TODO Auto-generated constructor stub
        this.context = context;
        this.list = list;
    }

@Override
    public int getCount() {
        // TODO Auto-generated method stub
        return list.size();
    }

@Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return null;
    }

@Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ViewHolder viewHolder = null;
        if (convertView == null) {
            convertView = View.inflate(context, R.layout.gridview_item, null);
            viewHolder = new ViewHolder();
            viewHolder.tv_title = (TextView) convertView
                    .findViewById(R.id.grid_textView1);
            viewHolder.tv_reading = (TextView) convertView
                    .findViewById(R.id.grid_textView2);
            viewHolder.tv_bytime = (TextView) convertView
                    .findViewById(R.id.grid_textView3);
            viewHolder.img = (ImageView) convertView
                    .findViewById(R.id.grid_img1);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }

viewHolder.tv_title.setText(list.get(position).title);
        viewHolder.tv_reading.setText(list.get(position).reading);
        viewHolder.tv_bytime.setText(list.get(position).bytime);

ImageLoader instance = ImageLoader.getInstance();
        instance.displayImage(list.get(position).img, viewHolder.img);

return convertView;
    }

class ViewHolder {

TextView tv_title, tv_reading, tv_bytime;
        ImageView img;

}

}

时间: 2024-11-07 06:34:58

PullToRefreshGridView的相关文章

开源项目PullToRefresh详解(二)——PullToRefreshGridView

这里介绍的是PullToRefreshGridView的使用方法,和之前的PullToRefreshListView方法如出一辙,因为这个开源项目模块化很棒,所以很容易实现.等于说我们可以按照之前使用控件的方式来操作,不用考虑其他的问题. 思路: 1.写布局文件,放入可以下拉刷新的控件 2.找到下拉刷新的控件,设置监听器,并且在刷新方法中开启一个异步任务来操作 3.通过这个下拉刷新控件的getRefreshableView()方法来得到GridView对象,按照正常的操作来设置适配器 4.在异步

PullToRefreshGridView刷新加载2

@XStreamAlias("result")public class Myresult { @XStreamImplicit(itemFieldName="item") package com.example.yuekao1; import java.util.ArrayList;import java.util.List;import com.baidu.net.Network;import com.baidu.vo1.Good;import com.baidu

PullToRefreshGridView 带下拉刷新,上拉加载的GridView控件

下载地址:https://github.com/chrisbanes/Android-PullToRefresh 下载解压后,导入解压包中的extras项目 xml: <span style="font-size:18px;"><com.handmark.pulltorefresh.library.PullToRefreshGridView android:id="@+id/gvList" android:layout_width="ma

PullToRefreshGridView上拉刷新,下拉加载

PullToRefreshGridView上拉刷新,下拉加载 布局: 1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 an

请问在pulltorefreshGridView中的图片设置了大小之后怎么就不显示了呢

============问题描述============ 我每个Item就是一个LinearLayout中放的一个ImageView,现在我想设置一下这个ImageView的大小. 代码如下: public void setImgSize(ImageView img){ LayoutParams params =  (LayoutParams) img.getLayoutParams(); params.width = winW/2; params.height = winW/2; img.se

PullToRefreshGridView 刷新后如何回到顶部

直接上代码做记录,不多说 ? 1 2 3 4 5 6 7 gird.post(new Runnable() {                        @Override             public void run() {                 gird.setSelection(0);             }         }); mPullRefreshGridView.onRefreshComplete(); 直接调用 ? 1 gird.setSelect

定位、列表展示

1.定位城市并展示列表信息 package com.bwie.fuxi_yuekao; import java.util.List; import android.app.Activity; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import android.wi

Android开发----PullRefreshLibrary下拉刷新上拉加载相关代码

Mainactivity public class MainActivity extends Activity { private String url = "http://apis.juhe.cn/goodbook/catalog?key=9d6ef8c31647a206e05fcaff70527182&dtype=xml";    private List<Xmlarray> list;    private ListView lv;    // 定义一个变量,

猜测月考题

MainActivity.class: package com.example.map_one_dinwei; import java.util.List; import android.app.Activity; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; impor