我使用视图持有者在列表视图中保存视图,她使用我的代码
public class MyAdapter extends BaseAdapter{
Context context;
private LayoutInflater mInflater;
ViewHolder holder;
public MyAdapter(Context context/*,List<Music> list*//*,ListView listView*/){
this.context = context;
}
@Override
public int getCount() {
return 15;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
int p = 0;
View view = null;
if(convertView == null){
holder= new ViewHolder();
convertView = View.inflate(context, R.layout.item, null);
holder.set = (TextView)convertView.findViewById(R.id.set);
holder.button = (Button)convertView.findViewById(R.id.button1);
convertView.setTag(holder);
}
else{
holder = (ViewHolder) convertView.getTag();
}
holder.button.setOnClickListener(new lis(position,holder));
return convertView;
}
class lis implements OnClickListener{
private int p;
private ViewHolder holder;
public lis(int p,ViewHolder holder){
this.p = p;
this.holder = holder;
}
int counter=0;
@Override
public void onClick(View v) {
p++;
counter++;
Log.e("counter ",String.valueOf(counter));
holder.set.setText("" + counter);
}
}
static class ViewHolder{
Button button = null;
TextView set = null;
}
}
但是,例如,当我单击列表中的一个项目时,我单击项目 1 以将其值增加 +1,但在此代码中,它也会将其他两个项目增加 +1,我的代码中的问题在哪里?