java–Android自定义列表视图

java–Android自定义列表视图,第1张

概述我经历了教程和搜索,但我仍然无法理解,getView(intposition,ViewconvertView,ViewGrouparg2)扩展BaseAdapter在我的Android应用程序中创建自定义listView时,该方法有效.因此,我无法准确编辑自定义列表视图.我需要知道这个方法何时调用以及参数的含义.如果有人可以解释下

我经历了教程和搜索,但我仍然无法理解,

getVIEw(int position, VIEw convertVIEw, VIEwGroup arg2)

扩展BaseAdapter在我的AndroID应用程序中创建自定义ListVIEw时,该方法有效.因此,我无法准确编辑自定义列表视图.

我需要知道这个方法何时调用以及参数的含义.

如果有人可以解释下面的方法很棒.谢谢

@OverrIDepublic VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup arg2){    VIEwHolder holder;    LayoutInflater inflater =  context.getLayoutInflater();    if (convertVIEw == null)    {        convertVIEw = inflater.inflate(R.layout.Listitem_row, null);                             holder = new VIEwHolder();        holder.txtVIEwTitle = (TextVIEw) convertVIEw.findVIEwByID(R.ID.textVIEw1);        holder.txtVIEwDescription = (TextVIEw) convertVIEw.findVIEwByID(R.ID.textVIEw2);        convertVIEw.setTag(holder);    }    else    {        holder = (VIEwHolder) convertVIEw.getTag();                                            }    holder.txtVIEwTitle.setText(Title[position]);    holder.txtVIEwDescription.setText(description[position]);  return convertVIEw;}

解决方法:

getVIEw():如规范中所述,getVIEw方法显示指定位置的数据.因此,当你setAdapter并滚动ListVIEw时,将调用getVIEw方法.

您在此处复制的方法是EfficIEntAdapter的一部分,用于优化ListVIEw性能以及使用VIEwHolder模式的优化.

从规格复制:只有更多的解释

position:项目在我们想要的视图项的适配器数据集中的位置.

convertVIEw:如果可能的话,重用旧视图.注意:你应该检查一下
在使用之前,vIEw是非null且具有适当的类型.如果无法转换此视图以显示正确的数据,则此方法可以创建新视图.异构列表可以指定它们的视图类型数,以便此VIEw始终是正确的类型(请参阅getVIEwTypeCount()和getItemVIEwType(int)).

因此,在上面的方法中,当您执行以下 *** 作时,您将重用convertVIEw.

     if (convertVIEw == null){            ....            convertVIEw.setTag(holder);     } else {           holder = (VIEwHolder) convertVIEw.getTag();       }

通过做以下事情,你避免查找(findVIEwByID),这就是VIEwHolder模式的好处

      holder.txtVIEwTitle = (TextVIEw) convertVIEw.findVIEwByID(R.ID.textVIEw1);

parent:此视图最终将附加到的父级

编辑

问题:调用getVIEw的次数以及创建的convertVIEw数量是多少?
答:让我们举一个Efficeint Adapter from ApiDemos的例子.如果你的屏幕显示10行,那么,

convertVIEw计数:10 1 = 11(10行你在屏幕上看到的,一个额外的显示滚动效果).这意味着if(convertVIEw == null){…}块中的语句只会被调用11次.

getVIEw Count:最初计数将为10,但是当你开始滚动计数时继续增加.每次都调用getVIEw来更新数据.

注意:这仅适用于所提到的getVIEw方法.

总结

以上是内存溢出为你收集整理的java – Android自定义列表视图全部内容,希望文章能够帮你解决java – Android自定义列表视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1115344.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存