[英]Android OnClickListener to update text within same ListView row
我正在做一个包含(其中包括)2个ImageViews和一个TextView的列表视图。 两个ImageView是加号和减号图标,当按下它们时,它们需要更新TextView中的数字。 他们还需要触发代码,该代码将更新ListView下面的TextViews的总和。
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.basket_item, null);
holder.plus = (ImageView) convertView.findViewById(R.id.count_add);
holder.minus = (ImageView) convertView.findViewById(R.id.count_minus);
holder.counter = (TextView) convertView.findViewById(R.id.text_counter);
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
holder.id = position;
holder.counter.setId(position);
holder.counter.setText(count[position]);
holder.plus.setId(position);
holder.plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int id = v.getId();
if (count[id] < 999) {
count[id]++;
totalcount++;
}
}
});
holder.minus.setId(position);
holder.minus.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int id = v.getId();
if (count[id] > 1) {
count[id]--;
totalCount--;
}
}
});
return convertView;
}
}
class ViewHolder {
ImageView plus;
ImageView minus;
TextView counter;
int id;
}
我相信,要更新TextView中的计数器,我需要以某种方式将我的“持有人”放入OnClickListner内,但是由于它没有被声明为final,所以我不能这样做。
有没有更简单的方法可以执行此操作,还是我在这里错过了一个窍门?
尝试实现再次调用getView的notifyDataSetChanged()。 然后使textView无效。 但我不确定是否需要在此处调用invalidate()。
public void onClick(View v) {
int id = v.getId();
if (count[id] > 1) {
count[id]--;
totalCount--;
notifyDataSetChanged();
holder.counter.invalidate();
}
}
});
我对此不确定,希望如此。 尝试将此行粘贴到Onclick方法本身下。
“ holder.counter.setText('YOUR TEXT totalcount');”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.