J'ai un ListActivity
. Chaque élément du ListView
contient un RatingBar
. Lorsque l'utilisateur manipule le RatingBar
, je souhaite mettre à jour les données correspondantes attachées à l'adaptateur.Modification des données de l'adaptateur
Malheureusement, dans mon gestionnaire RatingBar
, je ne peux pas me référer à la variable de position. Je comprends pourquoi. J'ai juste du mal à trouver un moyen de contourner ça.
Comment pourrais-je gérer ce que j'essaie de faire ici?
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// grab view
View v = convertView;
// set view layout
if (v == null) {
LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.layout_rating_ratingbubble, null);
RatingBar r = (RatingBar)v.findViewById(R.id.rating_rating);
if (r != null) {
r.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
// CANT REFER TO position HERE
m_items.get(position).setRating((int)rating);
}
});
}
Vous avez d'autres idées? – Andrew