listview自定义Adapter(三)

实现自定义Adapter的步骤

1.继承BaseAdapter
2.实现getView方法
3.关联ListView
继承BaseAdapter之后,就出来了四个方法
listview自定义Adapter(三)
添加数据集合和反射器实现构造器和setter方法
listview自定义Adapter(三)
实现getCout,getItem和getItemId方法
listview自定义Adapter(三)
实现getView方法
listview自定义Adapter(三)

在MainActivity中调用MyAdapter

listview自定义Adapter(三)

完整代码

listview自定义Adapter(三)
listview自定义Adapter(三)
listview自定义Adapter(三)

listview自定义Adapter(三)

运行结果

listview自定义Adapter(三)

自定义Adapter的工作原理

listview自定义Adapter(三)

ListView的常用事件

onItemClick :Item项点击事件
onItemLongClik :Item项长按事件
listview自定义Adapter(三)## 事件的消化
listview自定义Adapter(三)
true:表示消化掉事件,事件不会继续传递
false:表示不消化事件,事件将继续传递下去
如果希望长按事件后,不再触发点击事件,则应将返回值设为true
向上面那种return false,长按后 ,先出现长按提示框,再弹出点击提示框
如果改成return ture,长按只会出现长按提示框

选中背景切换的问题

按钮图片一旦更换成自定义的图片后,失去原有的反馈机制,有点击效果的
解决办法:用Select背景选择器实现以上的效果

selector背景选择器是drawable文件夹下的一种资源文件(.xml)
在其中可以定义多种不同状态下的控件背景
常用的状态如下表所示
listview自定义Adapter(三)
listview自定义Adapter(三)
listview自定义Adapter(三)

改变listview选中的背景颜色

选择器中的颜色,不能直接用#fff这种,必须有一个常量值
value—>Values XML—>colors(名字自定义)
首先必须定义一个透明色 transparent,不然点击没效果
listview自定义Adapter(三)
item_selector.xml
listview自定义Adapter(三)改的时候 ,要改整体
listview自定义Adapter(三)