根据id查找列表视图位置

时间:2012-09-02 21:49:10

标签: android android-listview android-cursoradapter

我有一个ListView显示来自SimpleCursorAdapter的数据。我有id值,我想要列表中的位置,与getItemId(position)相反。有这样的功能吗?

我知道如何实现它(不要打扰显示代码)但我找不到它,这似乎是一个明显的方法。

2 个答案:

答案 0 :(得分:1)

从评论中提出

内置适配器没有这样的方法。如果您的ListView按行ID排序,那么您可以使用二进制搜索(快!),否则您可能会遇到详尽的搜索(慢...)。

答案 1 :(得分:0)

简单的解决方案是在绑定视图中将id设置为子项

@Override
public void bindView(View view, final Context context, Cursor cursor {
      ..... 
      convertView.setId(id);
}

稍后从活动中您可以通过ID找到此视图并获取位置

View yourChildViewWithSpecifiedId = yourListView.findViewById(id);
int position = yourListView.getPositionForView(yourChildViewWithSpecifiedId);