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

Android必学-BaseAdapter的使用与优化

难度初级
时长45分
学习人数
综合评分9.63
243人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.3 逻辑清晰
  • 普通式与逗比式的不同在于convertView的使用上: 普通式对convertView进行了处理,充分利用了ListView的缓存机制,避免了重复创建View对象,因为通过LayoutInflater对象的inflate()方法创建View对象是非常耗时且耗资源的。 通过简单的判断: if (convertView == null){ convertView = myInflater.inflate(R.layout.item, null); } ,就可以避免大量创建View对象,从而对 getView()做了较好的优化。 ----------------------------------- 摘自评论区: 如果将findViewById写在if(convertView==null)中的话,运行后listview的顺序是混乱的。
    查看全部
  • 逗比式,浪费资源,请勿模仿!
    查看全部
  • 为何是“逗比式”?因为这里只使用了getView()的position参数,完全没有利用另外两个参数。本质上说,是“没有利用到ListView的缓存机制”。每次使用getView(),都通过 LayoutInflater 创建新的View对象view,并在view中找到相应的控件、去给它设置相应的值,完全没有利用到 ListView 的缓存机制,这样是对资源的极大浪费。
    查看全部
  • 创建一个新的类 MyAdapter 继承 BaseAdapter 作为自定义适配器。 声明数据源 List<ItemBesn> mylist; 构造有参的构造方法,让数据源和适配器产生关联: public MyAdapter(List<ItemBean> mylist) { this.mylist = mylist; } 改写四个继承的方法。
    查看全部
  • AS快捷键:Alt+insert 在遵循JavaBean设计原则的前提下创建 ItemBean 类: public class ItemBean { //私有属性 private int ItemImageid; private String ItemTitle; private String ItemContent; //无参构造方法 public ItemBean() { } //非原则,为了方便后面创建对象,这里又定义了有参的构造方法。 public ItemBean(int itemImageid, String itemTitle, String itemContent) { ItemImageid = itemImageid; ItemTitle = itemTitle; ItemContent = itemContent; } //公有的getter/setter方法 public void setItemImageid(int itemImageid) { ItemImageid = itemImageid; } public void setItemTitle(String itemTitle) { ItemTitle = itemTitle; } public void setItemContent(String itemContent) { ItemContent = itemContent; } public int getItemImageid() { return ItemImageid; } public String getItemTitle() { return ItemTitle; } public String getItemContent() { return ItemContent; } }
    查看全部
  • 图中直接使用有参的构造方法实现赋值。还有另一种赋值方式,通过 Bean 对象的setter方法: for(int i=0;i<20;i++){ ItemBean ib = new ItemBean(); ib.setItemImageid(R.mipmap.ic_launcher); ib.setItemTitle("我是标题"+i); ib.setItemContent("我是内容"+i); datalist.add(ib); }
    查看全部
  • BaseAdapter基本结构 public int getCount():适配器中数据集中数据的个数 public Object getItem(int position):获取数据集中与指定索引对应的数据项 public long getItemId(int position):获取指定行对应的ID public View getView(int position,View convertView,ViewGroup parent):获取每一个Item的显示内容 ------------------------------------------ 如图,新建 Item.xml,创建一个简单的 Item 布局。
    查看全部
  • ListView的显示与缓存机制 了解缓冲池的存在 如图,实际有很多数据,但局限于手机屏幕的尺寸,ListView第一次加载的时候只显示前面几条数据,当我们向上滑动的时候,Item1 就被回收到缓冲池, 同时Item8从缓冲池中被取出。 从缓冲池中取出对象的方法:View getView(int position, View convertView, ViewGroup parent)。 通过缓存机制,可以极大地节约系统资源。 ------------------------------- 摘自评论区: 老师画的图是错误的,从此图中至少应该一次加载8个item(但第八个还没有显示),然后开始才是从Recycler中去取出被画成的item。因为 item1还没完全滑出屏幕时,此时item8已经显示在界面上了,所以一次至少的加载8个item
    查看全部
  • 数据适配器——BaseAdapter 数据源的来源是各种各样的,而ListView所展现的数据格式是有一定要求的,数据适配器将数据源转换成ListView可以显示的数据格式,建立了数据源和ListView的适配关系。从而将数据的来源和数据的显示进行了“解耦”,降低了程序的耦合性,让程序更加容易扩展。 适配器有很多种,而BaseAdapter是最通用的适配器。
    查看全部
  • 创建内部类ViewHolder用于优化findView
    查看全部
    0 采集 收起 来源:文艺式

    2017-03-14

  • 取出三个数据
    查看全部
  • 初始化对象
    查看全部
  • 返回ListView要显示的数据数量
    查看全部
  • 数据源与数据适配器关联
    查看全部
  • Alt+insert调出Constructor
    查看全部

举报

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

微信扫码,参与3人拼团

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

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