我的listview中加了button,listview采用的SimpleAdapter来填充数据,现在的问题是:在第一次加载数据时只有第一条记录和下一页的button能够响应事件。其他记录的button点击都没有反应。我的代码如下:
重写getView方法
View v;
     if (null == convertView){   
                LayoutInflater inflater      = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);   
                v = inflater.inflate(R.layout.listview, parent, false);   
            }   else{
             v = convertView;
            }
       
     bt = (Button)v.findViewById(R.id.listOrder1);
     if(bt != null){
     bt.setOnClickListener(new OnClickListener(){ public void onClick(View v) {
// TODO Auto-generated method stub
Log.e("xp", "----------------------");
}
    
     });
     }我想通过 view.setTag(viewHolder)的方式实现,结果报错,后来发现simpleAdapter源码里已经用到了view.setTag(viewHolder),所以我的view.setTag(viewHolder)会有冲突。
我还有其他办法吗?

解决方案 »

  1.   

    ViewHolder(自定义) holder
    if(null == convertView){ 
    ......
    contertView.setTag(holder)
    }else{
    holder=(ViewHolder)convertView.getTag();
    }
    这样是否就解决了你的问题了呢。
      

  2.   

    ViewHolder(自定义) holder
    if(null == convertView){  
    ......
    contertView.setTag(holder)
    }else{
    holder=(ViewHolder)convertView.getTag();
    }这样我试了,在普通的SimpleAdapter下可以,但我的adapter重写了bindView方法。结果用ViewHolder报错。
      

  3.   

    你可以看看别人的讨论http://topic.csdn.net/u/20100508/21/3e4f67b8-0ae8-497b-aa23-f691cd1bedbb.html,太深入的我也没怎么接触。
      

  4.   

    遇到了跟你同样的问题  同问!加了可点击的控件之后(如button EditText)ListView原来的listener也不好使了
      

  5.   

    用ViewHolder后button可以使用,但是imageview的图像不能刷新。晕。