tag 标签: listview

相关博文
  • 热度 2
    2021-5-26 13:00
    1790 次阅读|
    1 个评论
    Android之使用 SimpleAdapter 实现 ListView
    使用 SimpleAdapter 来实现 ListView 有一定的扩充性,可以实现一定的自定义效果,这种自定义的效果是通过创建 item 样式来实现的。创建一个名为 item _ list.xml 的 item 布局文件,代码如下 ∶
  • 热度 30
    2016-1-19 21:55
    2823 次阅读|
    0 个评论
    安卓listview的view重用,Adapter适配器类,setTag,getTag的理解 listview用的“适配器类”中一般有这个写法:     public View getView(int position, View convertView, final ViewGroup parent) {         mInflater = (LayoutInflater) contxet.getSystemService(Context.LAYOUT_INFLATER_SERVICE);         ViewHolder holder;         if (convertView == null) {             convertView = mInflater.inflate(R.layout.block_list_item, null);             holder = new ViewHolder();             holder.mAd_tv_show = (TextView) convertView.findViewById(R.id.ad_tv_show);             holder.mAd_btn_one = (Button) convertView.findViewById(R.id.ad_btn_one);             holder.mAd_btn_two = (Button) convertView.findViewById(R.id.ad_btn_two);             convertView.setTag(holder);         } else {             holder = (ViewHolder) convertView.getTag();         }         。。。其它语句 是什么意思呢? 经研究,系统要显示listview中的其中一项listitem时,就会调用“适配器类”中的getView(int position, View convertView, final ViewGroup parent)。 这个函数方法是我们自己重写的,是由系统调用的,当要在屏上显示其中一个listitem项时,系统就会调用这个函数方法。 返回值view:我们返回这个listitem的view给系统,系统就把这个view显示出来。 position:系统会给出position值,表示要显示哪一个listitem。 convertView:系统会给出一个view,也可能是null。 因为每个listitem就是一个view! 比如listview中有100个listitem,当我们划动手指时,其它的listitem要显示出来,当每个listitem要显示出来时,系统都会调用getView()来得到这个listitem的view。不管你是上划,还是下划,即查看已显示过的listitem,也会调用getView()。 如果我们在getView()程序中每次都创建一个view出来,那我们下划到最后,就会有100个view被创建出来,我们再上划到最前面,又有100个view被创建出来,反复上下划,view就越来越多,系统就崩溃了。 所以,view是设定成可以重用的,只需要当前显示的view就够用了,,比如手机屏幕中只显示了3个listitem,其它listitem现在不用显示,则只需要3个view就可以了。我们只需要创建出3个view出来。当有一个listitem不再显示,它的view就可以被重用给要显示的新的listitem,就可以了。 系统自己会管理要重用的view,所以它调用getView()时,如果一个不再使用的view可以重用,它就把这个view作为convertView传递过来,让我们使用。如果没有可重用的view,它就传递null。这样我们在程序中就可以判断是否新建一个view了。 setTag()是把我们自己的数据依附到这个view中。当下次我们用这个view时,可以用getTag()取出自己的数据。 这个view中会有textview、button等,我们把它们存到自定义的ViewHolder中,再把ViewHolder依附setTag()到这个view中,供自己下次getTag()出来使用。。  
相关资源