ビューホルダーを使用してリストビューでビューを保持し、彼女は私のコード
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増やしますが、このコードでは、他の2つのアイテムも+1で増やします。私のコードの問題はどこですか?