我的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)会有冲突。
我还有其他办法吗?
重写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)会有冲突。
我还有其他办法吗?
if(null == convertView){
......
contertView.setTag(holder)
}else{
holder=(ViewHolder)convertView.getTag();
}
这样是否就解决了你的问题了呢。
if(null == convertView){
......
contertView.setTag(holder)
}else{
holder=(ViewHolder)convertView.getTag();
}这样我试了,在普通的SimpleAdapter下可以,但我的adapter重写了bindView方法。结果用ViewHolder报错。