为了账号安全,请及时绑定邮箱和手机立即绑定

Android必学-BaseAdapter的使用与优化

难度初级
时长45分
学习人数
综合评分9.63
243人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.3 逻辑清晰
  • Adapter中控件与数据关联关键代码
    查看全部
  • 将layout文件转为View对象2/2
    查看全部
  • 将layout文件转为View对象1/2
    查看全部
  • baseAdapter的各种方法
    查看全部
  • 原来之前一直写的都是逗比的写法。。。。。尴尬
    查看全部
  • mInflater
    查看全部
  • ItemBean的数组
    查看全部
  • getCount():适配器中数据集中数据的个数 getItem():获取数据集中指定索引对应的数据项。 getItemId():获取指定行对应的id getView():获取每一个item的显示内容。
    查看全部
  • base adapter有holder.
    查看全部
    0 采集 收起 来源:文艺式

    2017-07-13

  • 通用的高效适配器的打造 按照截图的思路,我们可以将自定义的适配器封装起来,方便以后调用,去解决其他的项目问题,也就是代码复用。只需要修改ViewHolder的成员变量(也就是Item的控件)、修改对ViewHolder成员的赋值(ItemBean的成员变量的getter方法)就可以了,非常方便。
    查看全部
    1 采集 收起 来源:总结

    2017-06-07

  • 对于一些细微的程序比较效率用获取系统纳秒时间方法 关键代码: long start =System.nanoTime();程序开始前计时 ... long end =System.nanoTime();结束计时 long dValue=end-start;计算查值 mSumTime +=dValue统计时间 log.d("xys",String.valueof(mSunTime));打印出时间 viewholder 作为findviewbyid的一个转接,避免系统大量的遍历提高效率。
    查看全部
    0 采集 收起 来源:深入讲解

    2018-03-22

  • 1.创建ViewHolder类,含有所需的各种控件,为了避免重复的findViewById() class ViewHolder{ public ImageView tv_image; public TextView tv_title; public TextView tv_content; } 2.判断convertView是否为空 空:用setTag()方法将ViewHolder与其绑定 非空:用getTag()方法,取出相关的ViewHolder 重点: (1)convertView为空的时候,通过setTag()将ViewHolder与convertView绑定,每一个空的convertView都将会把Item的三个控件保存到ViewHolder里面。之后通过getTag()方法可以快速找到一个convertView所对应的ViewHolder对象,然后通过ViewHolder的成员变量找到了对应的三个控件,从而避免了用findViewById()去实例化对象。 (2)convertView不为空的时候,使用getTag()方法,取出它所关联的ViewHolder对象,同时也找到l对应控件。 3.之后再创建 ItemBean 对象,为viewHolder的三个控件赋值: ItemBean bean = mylist.get(position); viewHolder.imageView.setImageResource(bean.getItemImageid()); viewHolder.title.setText(bean.getItemTitle()); viewHolder.content.setText(bean.getItemContent()); 4.return convertView
    查看全部
    0 采集 收起 来源:文艺式

    2017-06-07

  • 普通式与逗比式的不同在于convertView的使用上: 普通式对convertView进行了处理,充分利用了ListView的缓存机制,避免了重复创建View对象,因为通过LayoutInflater对象的inflate()方法创建View对象是非常耗时且耗资源的。 通过简单的判断: if (convertView == null){ convertView = myInflater.inflate(R.layout.item, null); } ,就可以避免大量创建View对象,从而对 getView()做了较好的优化。 ----------------------------------- 摘自评论区: 如果将findViewById写在if(convertView==null)中的话,运行后listview的顺序是混乱的。 普通式,要慎用。 系统每次调用 findViewById()的时候都会遍历一次视图树,当视图树很复杂的时候就会消耗大量的时间。
    查看全部
  • 为何是“逗比式”?因为这里只使用了getView()的position参数,完全没有利用另外两个参数。本质上说,是“没有利用到ListView的缓存机制”。每次使用getView(),都通过 LayoutInflater 创建新的View对象view,并在view中找到相应的控件、去给它设置相应的值,完全没有利用到 ListView 的缓存机制,这样是对资源的极大浪费。
    查看全部
  • 具体说明
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Android初-中级课程 1、熟练掌握基本的Android应用程序开发方法 2、熟练掌握Android中常见的适配器的使用 3、熟练掌握BaseAdapter中各方法的意义
老师告诉你能学到什么?
1、了解ListView的缓存机制 2、 BaseAdapter的逗比式 3、 BaseAdapter的普通式 4、 BaseAdapter的文艺式

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!