Android开发实现ListView部分布局监听的方法
本文实例讲述了Android开发实现ListView部分布局监听的方法。分享给大家供大家参考,具体如下:
androidlistview部分布局监听,很多人会想,直接在适配器里面,拿到那个布局,添加点击事件就可以了,不过我会告诉你的是这时候position是错乱的,是无法根据用户点击的位置来对每个item进行相应的逻辑操作。 同事给我想到的一个办法是:给每个布局提前设置一个tag,也就是绑定对应需要设置的数据,在点击事件的时候,会有一个view,根据该view重新拿到这个tag,取得里面的数据,就可以了,防止错乱的问题,成功解决,大概的代码如下,因为加密的需要,很多代码省略:
//适配器 publicclassOrAdapterextendsBaseAdapter{ @Override publicintgetCount(){ returndataMap.size(); } @Override publicObjectgetItem(intposition){ returnposition; } @Override publiclonggetItemId(intposition){ returnposition; } @Override publicViewgetView(intposition,ViewconvertView,ViewGroupparent){ ViewHolderviewHolder=null; if(convertView==null){ viewHolder=newViewHolder(); convertView=getActivity().getLayoutInflater().inflate( R.layout.activity_order_item,null); initViewHolder(convertView,viewHolder,position); }else{ viewHolder=(ViewHolder)convertView.getTag(); } refreshViewHolder(position,viewHolder); returnconvertView; } privateStringgetTag(StringorderId,Stringinstrument){ StringBuildersb=newStringBuilder(); sb.append(orderId).append(";").append(instrument); returnsb.toString(); } privatevoidrefreshViewHolder(intposition,ViewHolderviewHolder){ //------------------为了防止item被复用------------------ viewHolder.modeifyorder.setTag(getTag(orderid,instrument)); } privatevoidinitViewHolder(ViewconvertView,ViewHolderviewHolder, finalintposition){ viewHolder.modeifyorder=(RelativeLayout)convertView .findViewById(R.id.modeifyorder); viewHolder.modeifyorder.setOnClickListener(newOnClickListener(){ @Override publicvoidonClick(Viewv){ intisman=(Integer)dataMap.get(position).get("ismanual"); intisprice=(Integer)dataMap.get(position).get( "ispricereached"); Stringtag=v.getTag().toString(); StringtagVec[]=tag.split(";"); longorderId=Long.parseLong(tagVec[0]); StringinstStr=tagVec[1]; } }); convertView.setTag(viewHolder); } privateclassViewHolder{ TextVieworderid; RelativeLayoutmodeifyorder; } }
有不明白的可以相互交流
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》、《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android数据库操作技巧总结》及《Android资源操作技巧汇总》
希望本文所述对大家Android程序设计有所帮助。