Android ListView 实现 GridView 用以实现GridView的下拉刷新

分类:Android 96人阅读 评论(0) 收藏 举报

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

ListViewAdapter.java

[html] view plain copy
  1. packagecom.example.grideview;
  2. importjava.util.List;
  3. importandroid.content.Context;
  4. importandroid.util.Log;
  5. importandroid.view.View;
  6. importandroid.view.View.OnClickListener;
  7. importandroid.view.ViewGroup;
  8. importandroid.widget.BaseAdapter;
  9. importandroid.widget.Button;
  10. publicclassListViewAdapterextendsBaseAdapter{
  11. privateList<String>list;
  12. privateContextcontext;
  13. publicListViewAdapter(Contextcontext){
  14. this.context=context;
  15. }
  16. publicvoidsetData(List<String>list){
  17. this.list=list;
  18. }
  19. @Override
  20. publicintgetCount(){
  21. //TODOAuto-generatedmethodstub
  22. //每列两项
  23. if(list.size()%2==0){
  24. returnlist.size()/2;
  25. }
  26. returnlist.size()/2+1;
  27. }
  28. @Override
  29. publicObjectgetItem(intposition){
  30. //TODOAuto-generatedmethodstub
  31. returnlist.get(position);
  32. }
  33. @Override
  34. publiclonggetItemId(intposition){
  35. //TODOAuto-generatedmethodstub
  36. returnposition;
  37. }
  38. @Override
  39. publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
  40. //TODOAuto-generatedmethodstub
  41. ViewHolderviewHolder=null;
  42. if(convertView==null){
  43. viewHolder=newViewHolder();
  44. convertView=View.inflate(context,R.layout.main,null);
  45. viewHolder.button1=(Button)convertView
  46. .findViewById(R.id.imageview1);
  47. viewHolder.button2=(Button)convertView
  48. .findViewById(R.id.imageview2);
  49. convertView.setTag(viewHolder);
  50. }else{
  51. viewHolder=(ViewHolder)convertView.getTag();
  52. }
  53. //position计算两列的情况下:position*2+1多列依次类推
  54. //第一列
  55. Stringstring1=list.get(position*2);
  56. viewHolder.button1.setText(string1);
  57. viewHolder.button1.setTag(string1);
  58. viewHolder.button1.setOnClickListener(newOnClickListener(){
  59. @Override
  60. publicvoidonClick(Viewv){
  61. //TODOAuto-generatedmethodstub
  62. Log.d("PAGE",v.getTag().toString());
  63. }
  64. });
  65. //position计算两列的情况下:position*2+1多列依次类推
  66. //第二列
  67. if((position*2+1)<list.size()){
  68. Stringstring2=list.get(position*2+1);
  69. viewHolder.button2.setText(string2);
  70. viewHolder.button2.setTag(string2);
  71. viewHolder.button2.setOnClickListener(newOnClickListener(){
  72. @Override
  73. publicvoidonClick(Viewv){
  74. //TODOAuto-generatedmethodstub
  75. Log.d("PAGE",v.getTag().toString());
  76. }
  77. });
  78. }else{
  79. //此处可以用一张透明图片替换避免Grid布局混乱
  80. viewHolder.button2.setVisibility(View.GONE);
  81. }
  82. returnconvertView;
  83. }
  84. classViewHolder{
  85. privateButtonbutton1;
  86. privateButtonbutton2;
  87. }
  88. }

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

更多相关文章

  1. android 问题汇总系列之六
  2. 转:android下拉列表框 spinner
  3. Android(安卓)下拉刷新,上拉加载动画,这一个就够了
  4. Android——PullToRefresh自动刷新
  5. Android常用UI之Spinner
  6. Android(安卓)5.0 之SwipeRefreshLayout
  7. Android根据当前时间获取前面的时间日期,或者之后的时间日期
  8. android listview 实现从数据库读取已读功能,服务器通知增加,刷新l
  9. 自定义Spinner下拉列表

随机推荐

  1. Android(安卓)平铺背景图片
  2. Android(安卓)Studio build dex jar
  3. android I/DEBUG堆栈信息
  4. 【翻译】(8)CPU ARM Neon
  5. 如何Android项目变成两个独立的项目,将bui
  6. Android离线语音识别demo调试(Ubuntu12.0
  7. android自动工具类TextUtils使用详解
  8. Android(安卓)常见工具类封装
  9. 摘抄代码没测试 发起程序的返回顺序以及
  10. 如何把应用安装到sd卡中