我有一个ListView显示来自SimpleCursorAdapter的数据。我有id值,我想要列表中的位置,与getItemId(position)相反。有这样的功能吗?
我知道如何实现它(不要打扰显示代码)但我找不到它,这似乎是一个明显的方法。
答案 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);