android listview 点击事件 混乱,Android listview 使用缓存以后绑定的事件出现混乱。...

public View getView(final intposition, View convertView, ViewGroup parent) {final Shop shop =al.get(position);if(map.get(position)==null){

System.out.println("map 没有数据当前第"+position+"项");

viewholder=newViewHolder();

viewholder.position=position;

LayoutInflater inflater=activity.getLayoutInflater();

convertView=inflater.inflate(R.layout.main_item, null);

viewholder.img=(ImageView)convertView.findViewById(R.id.img);

viewholder.time=(TextView)convertView.findViewById(R.id.time);

viewholder.tel=(TextView)convertView.findViewById(R.id.tel);

viewholder.collect=(TextView)convertView.findViewById(R.id.collect);

viewholder.name=(TextView)convertView.findViewById(R.id.name);

viewholder.l1=(LinearLayout)convertView.findViewById(R.id.linearlayout_01);

viewholder.l2=(LinearLayout)convertView.findViewById(R.id.linearlayout_02);

viewholder.hot=(ImageView)convertView.findViewById(R.id.hot);

viewholder.dayang=(ImageView)convertView.findViewById(R.id.dayang);

viewholder.detail=(TextView)convertView.findViewById(R.id.detail);

viewholder.menu=(TextView)convertView.findViewById(R.id.menu);//加载图片

LoadImageAsyncTask task=newLoadImageAsyncTask();

task.setImageView(viewholder.img);

task.execute(url+shop.getPhotoPath());//设置名字

viewholder.name.setText(shop.getName());//设置收藏数

viewholder.collect.setText(shop.getCollect());//设置电话

String tels=shop.getTel();

String []telarr=tels.split("%");

viewholder.tel.setText(telarr[0]);//设置时间

String times=shop.getTime();

String []timearr=times.split("%");if(timearr.length==1){

viewholder.time.setText(timearr[0]);

}else{

viewholder.time.setText(timearr[0]+"、"+timearr[1]);

}

map.put(position, convertView);

convertView.setTag(viewholder);

}else{

System.out.println("加载缓存的"+position);

convertView=map.get(position);

viewholder=(ViewHolder)convertView.getTag();

}

String times=shop.getTime();

String []timearr=times.split("%");if(timearr.length==1){

flag=timeutil.checkTime(timearr[0]);

}else{

flag=timeutil.checkTime(timearr[0],timearr[1]);

}final int currentPosition=position;if(flag){if(position<3){

viewholder.hot.setVisibility(View.VISIBLE);

}

((ViewHolder)map.get(currentPosition).getTag()).l1.setOnClickListener(newOnClickListener(){boolean bool=true;

@Overridepublic voidonClick(View v) {if(bool){

System.out.println("显示控件");

((ViewHolder)map.get(currentPosition).getTag()).l2.setVisibility(View.VISIBLE);

bool=false;

}else{

System.out.println("隐藏控件");

((ViewHolder)map.get(currentPosition).getTag()).l2.setVisibility(View.GONE);

bool=true;

} }

});

viewholder.detail.setOnClickListener(newOnClickListener(){

@Overridepublic voidonClick(View v) {

Intent intent=newIntent();

intent.setClass(activity,Detail_Activity.class);

intent.putExtra("shopname", shop.getName());

activity.startActivity(intent);

}

});

viewholder.menu.setOnClickListener(newOnClickListener(){

@Overridepublic voidonClick(View v) {

Intent intent=newIntent();

intent.setClass(activity,Menu_Activity.class);

intent.putExtra("shopname", shop.getName());

activity.startActivity(intent);

}

});

}else{

viewholder.dayang.setVisibility(View.VISIBLE);

}returnconvertView;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值