[英]issue with ratingBar in ListView in android
我制作的listView有一个问题,它具有一个等级栏和一个texview元素。 当我更改一行的评分时,另一行也会随机更改。
代码如下。 如果有人可以帮助,那就太好了。 谢谢。
public class QuestionsInfoAdapter extends ArrayAdapter<RatingInfo> {
private final Activity context;
private final List<RatingInfo> list;
public QuestionsInfoAdapter(Activity context, List<RatingInfo> list) {
super(context, R.layout.adapter_questionlist, list);
this.context = context;
this.list = list;
}
static class ViewHolder {
public TextView questiontxt;
RatingBar ratingBar1;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View rowView = convertView;
try {
if (rowView == null) {
final LayoutInflater inflater = context.getLayoutInflater();
rowView = inflater.inflate(R.layout.adapter_questionlist, null);
final ViewHolder viewHolder = new ViewHolder();
viewHolder.questiontxt = (TextView) rowView.findViewById(R.id.questiontxt);
viewHolder.ratingBar1 = (RatingBar) rowView.findViewById(R.id.ratingBar1);
viewHolder.ratingBar1.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
CustomerRatingForm.allShowRecords.get(position).setRating("" + rating);
}
});
rowView.setTag(viewHolder);
}
final ViewHolder holder = (ViewHolder) rowView.getTag();
final String s = CustomerRatingForm.allShowRecords.get(position).getQuestion();
holder.questiontxt.setText(s);
} catch (Exception e) {
Log.d("Exception", "Exception>>" + e);
}
return rowView;
}
尝试使用带有等级值的HashMap<Integer, Integer>
并将每个等级栏设置在位置X
viewHolder.ratingBar1.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
CustomerRatingForm.allShowRecords.get(position).setRating("" + rating);
hashMap.put(holder.getAdapterPosition(), rating);
}
});
. . .
if (hashMap.contains(X))
holder.ratingBar1.setRating(hashMap.get(X));
holder.questiontxt.setText(s);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.