0
J'ai un problème avec un listView que j'ai fait qui a une barre de notation et un élément texview. quand je change la cote pour une rangée, une autre change aussi aléatoirement.problème avec ratingBar dans ListView dans android
Le code est ci-dessous. Si quelqu'un pouvait aider, ce serait génial. Merci.
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;
}
vous devez enregistrer la note quand a été sélectionné et mis la valeur sur le viewHolder.ratingBar1 lorsque la getView être appelé. – tebitoq