0
我正在學習getTag和setTag。我需要解釋這些方法,並想知道它們是如何工作的。 我做了一個簡單的CustomListView有兩個按鈕和一個文本視圖。 按鈕是增加和減去增加或減少計數器的值,但問題是隻有最後一個項目值正在改變。請給我一個解決方案以及一個很好的解釋 謝謝。使用getTag和setTag來保存ListItem值
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_items, null);
add = (Button) convertView.findViewById(R.id.add);
sub = (Button) convertView.findViewById(R.id.sub);
textView = (TextView) convertView.findViewById(R.id.numberTV);
convertView.setTag(new ViewHolder(add, sub, textView , count));
}
holder = (ViewHolder) convertView.getTag();
textView = holder.textView;
count = holder.counter;
add = holder.add;
sub = holder.sub;
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
count +=1;
textView.setText(String.valueOf(count));
}
});
sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
count -=1;
textView.setText(String.valueOf(count));
}
});
return convertView;
}
}
class ViewHolder {
Button add, sub;
TextView textView;
int counter = 0;
public ViewHolder(Button add, Button sub, TextView textView , int counter) {
this.add = add;
this.sub = sub;
this.counter = counter;
this.textView = textView;
}
}