我创建了一个自定义CursorAdapter
它通过bindView()
结合在SQL
database
在ListView
一些列的一些视图中的项目(一TextView
和RatingBar
),即:如何迭代Android ListView以获得RatingBar值?
public class MyCursorAdapter extends CursorAdapter {
...
public void bindView(View view, Context context, final Cursor cursor) {
TextView name = (TextView)view.findViewById(R.id.name);
name.setText(cursor.getString(cursor.getColumnIndex(MyDbAdapter.KEY_NAME)));
RatingBar rating = (RatingBar)view.findViewById(R.id.life_bar_rating);
rating.setRating(cursor.getFloat(cursor.getColumnIndex(MyDbAdapter.KEY_RATING_VALUE)));
}
...
}
我想要得到的绝对是最新版的所有RatingBar
评分值,所以我可以相应地更新database
(一气呵成)。我最初试图在我的CursorAdapter
中使用cursor
,但是我注意到cursor
只包含database
中存储的值,而不是最新的用户更改 - 这是预期的(文档有点模糊)?
我猜我需要以某种方式遍历实际视图 - 我将如何遍历我的ListView
以检索所有新的评分栏评分值?
非常感谢您的帮助。如何获得评级栏的正确游标行ID?当我尝试从作为参数传入的游标获取行ID到bindView时,我只获取最后绑定ratingBar的行ID。 – Mewzer 2012-07-31 14:05:43
其实,确定。我只是意识到我可以设置一个标签,稍后在RatingBar上检索标签。 – Mewzer 2012-07-31 14:12:09
编辑帖子,当你找到方法时,我也建议你的Adapter实现'OnRatingBarChangeListener',所以你不需要为每个'RatingBar'创建一个新的并且节省内存。 – biegleux 2012-07-31 14:19:10