我有一個ListActivity
。 ListView
中的每個項目都包含一個RatingBar
。當用戶操縱RatingBar
時,我想更新連接到適配器的相應數據。更改適配器數據
不幸的是,在我的RatingBar
處理程序中,我無法引用位置變量。我明白爲什麼。我只是無法找到解決辦法。
我該如何處理我在這裏要做的事情?
@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);
}
});
}
任何人有任何其他想法? – Andrew 2010-08-12 14:11:29