Adapter适配器:
1、simpleAdapter接受的数据类型是List<? extends Map<String,?>>,Map的数据类型,所以Object数组不能直接交给simpleAdapter.所以在使用simpleAdapter时构建的数据是Object二维数组,且二维数组要先放入到map里面且map里面的key必须是String,再把map添加到list集合里面,才能正常使用simpleAdapter。
2、如果自己构建适配器且继承BaseAdapter,但是为什么要仿照ArrayAdapter?
lsv.setAdapter(adapter)中的参数adapter是ListAdapter(接口),所以自己写的Adapter必须实现这个接口。
其中BaseAdapter implements ListAdapter。与自己写的Adapter实现ListAdapter(接口)是一样的,所以要仿照ArrayAdapter。
之后重写相关方法,包括getCount(),getItem(),getItemId(),getView()。
3、如果自己构建适配器且继承ArrayAdapter,为什么没有重写上述全部的方法?
针对于BaseAdapter,我们可以查看它的参数类型,发现调用BaseAdapter时,它的方法里面都没有参数,所以要重写相关的方法来获得Adapter需要的数据。
但是ArrayAdapter,我们查看它的参数类型时,发现它的参数类型丰富,我们只需要调用自己需要的方法,即自己创建构造方法,就可以实现ArrayAdapter的相应方法。所以我们没有必要重写上述的所有方法。