2

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

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

4

2 回答 2

1

从评论中提出

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

于 2012-09-02T23:10:51.183 回答
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);
于 2016-03-24T06:35:55.780 回答