Android - SimpleAdapter适配器支持的组件及Listview模拟下载

本来这周想写三篇的,结果这第一篇就不知道该如何起笔。语言表达能力真的需要提高啊。其实有好多想写的,最近这几天又接触到了以前听过但是没有去考虑的一些点。这篇的起因曾经做过一道题,我当时很不理解,我看有评论还是很多跟我当时想法一样的,一直没来得及去追究,终于还是放心不下,去看了一下,发现我错了。原题如下:

使用SimpleAdapter作为 ListView的适配器,行布局中支持下列哪些组件?

  • TextView
  • ProgressBar
  • CompoundButton
  • ImageView
当时我毫不犹豫的就选了ABCD,后来就一个红红的× 。答案是ACD。SimpleAdapter并不支持ProgressBar,我当时就很纳闷儿,为啥?

其实看看这个题,人家说的是SimpleAdapter,想当然的把SimpleAdapter当作了最基本的Adapter了(至于其他的适配器,自己可以看一下),所以就感觉答案应该是没问题的,那这个SimpleAdapter到底是支持什么?这就要从SimpleAdapter的源码看了,我把重要的摘出来看,首先看一下这个SimpleAdapter的构造函数。

public SimpleAdapter(Context context, List<? extends Map<String, ?>> data,int resource, String[] from, int[] to) {
        mData = data;
        mResource = mDropDownResource = resource;
        mFrom = from;
        mTo = to;
        mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
这个SimpleAdapter只有一个构造函数,从参数可以看出,SimpleAdapter的数据资源类型还是比较固定的,List<? extends Map<String, ?>>。resource即每条记录的布局文件,from是data中Map的key ,而to 就是布局文件中的组件的id。

我们知道,Adapter的view显示或者view绑定是在getView函数里实现的,那么SimpleAdapter的getView函数,但是SimpleAdapter并没有直接重写getView,而是调用其他函数,最后调用了一个叫bindView的函数,从字面理解就是"绑定View"了,所以要看这个函数。


                
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值