【android学习笔记】自定义Adapter继承BaseAdapter获取不到getview或者getview不执行的问题

转载 2013年12月04日 01:39:06

listView在开始绘制的时候,系统首先调用getCount()函数,根据他的返回值得到 listView的长度,然后根据这个长度,调用getView()逐一绘制每一行。如果你的 getCount()返回值是0的话,列表将不显示同样return 1,就只显示一行。系统显示列表时,首先实例化一个适配器(这里将实例化自定义的适配器)。当手动完成适配时,必须手动映射数据,这需要重写getView()方 法。系统在绘制列表的每一行的时候将调用此方法。getView()有三个参数,position表示将显示的是第几行,covertView是从布局文 件中inflate来的布局。我们用LayoutInflater的方法将定义好的item.xml文件提取成View实例用来显示。然后将xml文件中 的各个组件实例化(简单的findViewById()方法)。这样便可以将数据对应到各个组件上了。但是按钮为了响应点击事件,需要为它添加点击监听 器,这样就能捕获点击事件。至此一个自定义的listView就完成了,现在让我们回过头从新审视这个过程。系统要绘制ListView了,他首先获得要 绘制的这个列表的长度,然后开始绘制第一行,怎么绘制呢?调用getView()函数。在这个函数里面首先获得一个View(实际上是一个 ViewGroup),然后再实例并设置各个组件,显示之。好了,绘制完这一行了。那再绘制下一行,直到绘完为止。


估计你getCount()返回值是0

自动生成getCount时默认是:

[html] view plaincopy
  1. @Override  
  2.     public int getCount() {  
  3.         return 0;     
  4. }  


把返回值改为:

[java] view plaincopy
  1. @Override  
  2.     public int getCount() {  
  3.         return arraylist.size();  
  4.       
  5. }  

       即可

android getView方法不执行的一个原因是布局文件中没有给列表显示的位置

一个原因是布局文件中,没有给列表显示的位置。 例如:下面的布局         android:id="@+id/list_find"         android:layout_widt...
  • wletv
  • wletv
  • 2015年02月26日 10:45
  • 6653

关于listview的自定义adapter不执行getview()方法的几种情况和解决办法

listview是一个比较常用的控件,为了适应自己需要的效果往往会继承baseadapter去实现自定义的适配器。        在该适配器中出错最多的应该是getview()了。        ...
  • Lucifer_art
  • Lucifer_art
  • 2015年04月02日 12:00
  • 8410

Android-BaseAdapter中重写getview的心得以及发现convertView回收的机制

http://blog.csdn.net/pkxiuluo01/article/details/7380974 以前一直在用BaseAdapter,对于其中的getview方法的重写一直不太...
  • xulianbocs
  • xulianbocs
  • 2016年05月15日 21:08
  • 2278

Adapter不调用getView()的可能

接着写上个哥们留下来的项目,里面有个gridView用BaseAdapt适配,结果死活没有显示,打了日志之后发现getView()也没有被调用.getView()不调用有一下几种可能 getCount...
  • wjoker
  • wjoker
  • 2016年04月28日 15:23
  • 1231

android BaseAdapter的getView的调用时机

打断点简单测试了下,发现BaseAdapter的getView的调用时机大致如下: 初始显示时listview滚动时notifyDataSetChanged处理时 大致就这3个时机。 ...
  • a102111
  • a102111
  • 2015年08月02日 19:41
  • 2750

android自定义Adapter中getView()三种写法及其效率问题。

android中常常需要我们自定义Adapter,甚至经常建一个包专门放各种自定义adapter类。常见的有ListView继承自BaseAdapter的adapter、ExpandableListV...
  • gongsunjinqian
  • gongsunjinqian
  • 2013年12月11日 15:04
  • 1563

listview的自定义adapter不执行getview()分析

listview是一个比较常用的控件,为了适应自己需要的效果往往会继承baseadapter去实现自定义的适配器。        在该适配器中出错最多的应该是getview()了。    ...
  • changwilling
  • changwilling
  • 2016年09月09日 13:46
  • 420

android开发 BaseAdapter中getView()里的3个参数的含义

int position位置,一般BaseAdapter都是很多类型一样的数据展示在界面,该属性是判断显示在界面上的是第几个,通过position在BaseAdapter自定义的数组或者集合中取值。并...
  • Yelbosh
  • Yelbosh
  • 2015年04月04日 17:33
  • 2829

关于BaseAdapter的getView方法的理解

为了节省资源,getView方法可以用convertView来循环显示,当上面的item消失时,它将以新的item从底部重生,充当新的item,这样就起到节省资源的效果。 item0 - item1 ...
  • u013272108
  • u013272108
  • 2015年08月12日 15:40
  • 1098

android-继承BaseAdapter--自定义适配器,getView执行多次的解决方法

定义的getView执行多次的ListView布局:
  • qxs965266509
  • qxs965266509
  • 2014年07月30日 17:23
  • 7428
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【android学习笔记】自定义Adapter继承BaseAdapter获取不到getview或者getview不执行的问题
举报原因:
原因补充:

(最多只允许输入30个字)