最近项目中碰到GridView下拉刷新的问题,google不到现成的资料,故此用listview来实现GridView,对ListView而言下拉刷新就很多资料可参考了,这里就不再啰嗦了。

ListViewAdapter.java

package com.example.grideview;import java.util.List;import android.content.Context;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Button;public class ListViewAdapter extends BaseAdapter {private List list;private Context context;public ListViewAdapter(Context context) {this.context = context;}public void setData(List list) {this.list = list;}@Overridepublic int getCount() {// TODO Auto-generated method stub// 每列两项if (list.size() % 2 == 0) {return list.size() / 2;}return list.size() / 2 + 1;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn list.get(position);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubViewHolder viewHolder = null;if (convertView == null) {viewHolder = new ViewHolder();convertView = View.inflate(context, R.layout.main, null);viewHolder.button1 = (Button) convertView.findViewById(R.id.imageview1);viewHolder.button2 = (Button) convertView.findViewById(R.id.imageview2);convertView.setTag(viewHolder);} else {viewHolder = (ViewHolder) convertView.getTag();}//position计算  两列的情况下:position* 2 +1 多列依次类推 //第一列String string1 = list.get(position * 2);viewHolder.button1.setText(string1);viewHolder.button1.setTag(string1);viewHolder.button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubLog.d("PAGE", v.getTag().toString());}});//position计算  两列的情况下:position* 2 +1 多列依次类推 //第二列if ((position * 2 + 1) < list.size()) {String string2 = list.get(position * 2 + 1);viewHolder.button2.setText(string2);viewHolder.button2.setTag(string2);viewHolder.button2.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubLog.d("PAGE", v.getTag().toString());}});} else {//此处可以用一张透明图片替换 避免Grid布局混乱viewHolder.button2.setVisibility(View.GONE);}return convertView;}class ViewHolder {private Button button1;private Button button2;}}

其余代码就不贴了。可在此处下载 Demo。



更多相关文章

  1. android ActionBar-PullToRefresh 下拉刷新的使用方法
  2. android自定义Spinner的下拉样式(setDropDownViewResource)
  3. Android(安卓)ListView下拉刷新上拉自动加载更多DEMO示例
  4. Android(安卓)锁屏状态下拉起某个页面
  5. SwipeRefreshLayout Android(安卓)自带的下拉刷新布局
  6. 仿QQ下拉菜单列表 自定义Spinner
  7. Android(安卓)实现登录界面和功能实例
  8. Android笔记之:App列表之下拉刷新的使用
  9. android-PullToRefreshListView自动刷新问题

随机推荐

  1. android 屏幕自适应
  2. 【Android布局】在程序中设置android:gra
  3. android的Instrumentation详解
  4. Android在Eclipse环境下安装配置
  5. Android中横竖屏切换的问题
  6. Android(安卓)应用程序之间数据共享—Con
  7. 【Android】gravity、layout_gravity 以
  8. 获取Android的Java源代码并在Eclipse中关
  9. 当Google忙着忽悠Android的时候,各位别忘
  10. Android中shape的使用