我有一个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