android listview 中有多个需要点击的内容项时的处理

来源:互联网 发布:异形讲的什么 知乎 编辑:程序博客网 时间:2024/05/29 04:51

项目暂时比较宽松,写点自己做项目的感受吧。

首先,想使用listview的onItemclickListener来处理点击后的事件,然后用 (控件 instance of 控件)的方式来处理不同的控件点击操作;可是发现,如果需要处理的几个控件都是相同的类型,例如都是ImageButton,这样就无法分别处理不同的控件。这种处理的好处在于处理的时候系统耗费的资源较少(和下一种方法比较而言),效率相对较高,如果你的item中有不同的控件需要处理点击事件,那么就可以考虑用这样的方式。

然后,自然就想到了第二种方法:在adapter中getview时,初始化holder中的控件的同时,附给他一个点击处理事件。

这样就可以进行我们想要的操作了,后来证明能完成我们设计好的功能。遗憾的是,这样做的效率并不高,因为在getview本身会在listview加载数据的是加载,至少是有多少条item就要执行多少次。这样我们在getview中处理点击事件的回调就很浪费资源。

这里还要插一句,listview在拖动的时候加载item,getview方法的调用次数有可能很多,在网上找了些人做的研究,分析,主要原因是listview在onmesure(),和onlayout()的时候如果listview不是fillparent,会重复的计算,这样有可能多次加载getview方法,所以,这里使用listview,一定要使用fillparent,至少高度要fillparent,或者使用绝对布局把宽高限制死(下下策)。

----130807,下班了,先记录到这里。。。待完善

原创粉丝点击