我在做项目时遇到当自定义Listview的adapter时在getview()中用了viewholder做为缓存机制,当我点击每一项时要跳转到另一个页面,跳转时要传递当前view上的title参数,这时我发现position是错的,它并不是当前view的position。
adapter的getView方法中使用viewholder类中的一个控件,例如我的Textview title(这里一定要设置一定是要传递的 ),在
else { 下面设置
holder = (ViewHolder) convertView.getTag();
}holder.tv_website_title.setTag(position);类似这样的,然后在你onClick中设置position=holder.tv_website_title.getTag()
从而做相应的处理。
虽然写的短但是解决了项目中的问题
本文介绍了一种解决自定义ListView的Adapter中ViewHolder机制下点击事件获取位置错误的问题的方法。通过在getView方法中设置TextView的Tag为position,并在点击事件中通过ViewHolder获取正确的position,实现了点击事件的准确响应。
2万+

被折叠的 条评论
为什么被折叠?



