Android 面试题总结之Android 基础(五)

本文是Android面试题系列的第五部分,重点讨论ListView的基础知识、优化策略和替代方案。内容包括ListView的数据更新、分页加载、显示多种类型Item、定位、监听器以及性能优化,如ViewHolder、异步加载和内存管理。此外,还介绍了RecyclerView作为ListView的替代品,并提到了一些常用的开源ListView库。
摘要由CSDN通过智能技术生成

Android 面试题总结之Android 基础(ListView)(五)

前几篇面试总结中,主要讲了Android 的四大组件的相关知识点,希望在大家日常工作中有所帮助,那么在本节中主要是Android 必不可少的ListView 的相关知识点。Listview 类似的控件 ,不管是在.Net 中 ,还是在Java 中 都是使用非常广泛。正因为他的重要性,内容比较多,所以单独章节的介绍。前两篇文章传送门:
Android 面试题总结之Android 基础(一)
Android 面试题总结之Android 基础(二)

Listview 基础问题

  1. 当 ListView 数据集改变后,如何更新 ListView?

    使用该 ListView 的 adapter 的 notifyDataSetChanged()方法。该方法会 使 ListView 重新绘制。

  2. ListView 如何实现分页加载

    1. 设 置 ListView 的 滚 动 监 听 器 : setOnScrollListener(new OnScrollListener{….})
      在监听器中有两个方法: 滚动状态发生变化的方法 (onScrollStateChanged)和 listView 被滚动时调用的方法(onScroll)
    2. 在滚动状态发生改变的方法中,有三种状态:
      手指按下移动的状态: SCROLL_STATE_TOUCH_SCROLL: // 触摸滑动
      惯性滚动(滑翔(flgin)状态): SCROLL_STATE_FLING: // 滑翔 静止状态:
      SCROLL_STATE_IDLE: // 静止

    对不同的状态进行处理:
    分批加载数据,只关心静止状态:关心最后一个可见的条目,如果最后一个 可见条目就是数据适配器(集合)里的最后一个,此时可加载更多的数据。在每 次加载的时候,计算出滚动的数量,当滚动的数量大于等于总数量的时候,可以 提示用户无更多数据了。

  3. ListView 如何显示多种类型的Item

    ListView 显示的每个条目都是通过 baseAdapter 的 getView(int position, View convertView, ViewGroup parent)来展示的,理 论上我们完全可以让每个条目都是不同类型的 view。
    比如:从服务器拿回一个标识为 id=1,那么当 id=1 的时候,我们就加载类 型一的条目,当 id=2 的时候,加载类型二的条目。常见布局在资讯类客户端中 可以经常看到。
    除此之外 adapter 还提供了 getViewTypeCount()getItemViewType(int position)两个方法。在 getView 方法中我们可以根据不 同的 viewtype 加载不同的布局文件。

  4. ListView 如何定位到指定位置?
    可以通过 ListView 提供的 lv.setSelection(listView.getPosition());方法。

  5. 在ListView中设置Selector为null会报空指针?
    mListView

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值