关于ListView中的getView()方法的理解

最近在弄android的通讯录来玩玩~

然后就在纠结那个列表怎么弄才好..

在博客园里搜了一下

http://www.cnblogs.com/allin/archive/2010/05/11/1732200.html

http://www.cnblogs.com/xiaowenji/archive/2010/12/08/1900579.html

结合这两位大人的随笔.终于搞定啦~~

allin的ListView使用写得很详细了.

但是最后的getView()方法让我不理解.

好吧.我承认我是新手..

OK.继续.

然后就搜到第二个网站啦~

虽说也写得比较详细..但是不是那么容易懂..

或者说我笨吧~

然后最后个人理解是.

就好比例子中.只用了十个内存地址空间.

不断地循环地用这10个地址来存储需要显示的item.

在这段代码中

 convertView在最开始创建了10个内存地址,且都是空.

 
  
1 @Override
2 public View getView( int position, View convertView, ViewGroup parent) {
3 System.out.println( " getView " + position + " " + convertView);
4 ViewHolder holder = null ;
5 if (convertView == null ) {
6 convertView = mInflater.inflate(R.layout.item1, null );
7 holder = new ViewHolder();
8 holder.textView = (TextView)convertView.findViewById(R.id.text);
9 convertView.setTag(holder);
10 } else {
11 holder = (ViewHolder)convertView.getTag();
12 }
13 holder.textView.setText(mData.get(position));
14 return convertView;
15 }

所以就需要setTag.使它不为空.

即利用holder,调用convertView.setTag函数

而在后面.convertView不为空了.

则调用getTag来获得当前位置的tag

最后利用holder的各种set操作来替换当前位置的tag.

~~

转载于:https://www.cnblogs.com/fedition/archive/2011/04/17/2018728.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值