使ListView在android中唯一可识别

时间:2012-02-26 18:59:59

标签: android android-listview

当我从android sample读取时,如果我使用SimpleCursorAdapter,它会自动将列表视图的id设置为表的主键,因此如果我调用以下事件:

protected void onListItemClick(ListView l, View v, int position, long id) 
{
 ......
}

通过读取id参数,我可以轻松确定选择了哪个数据库项(行)。

但是我通过实现自己的自定义ArrayAdapter来填充列表视图。正如我在前question中所解释的那样。所以我不知道如何获得列表视图项的选定ID。

我的表只有两列,长类型的_Id是主键,名称是nvarchar类型。

感谢。

2 个答案:

答案 0 :(得分:1)

由于您的List<T>由自定义数据容器对象组成,您只需向该数据容器类添加getPrimaryKey()等方法即可。现在,在方法onListItemClicked中,您可以通过执行

轻松读取该键
DataContainer dataContainer = myDataList.get(position);
int primaryKey = dataContainer.getPrimaryKey();

或只是

int primaryKey = myDataList.get(position).getPrimaryKey();

答案 1 :(得分:0)

扩展CursorAdapter而不是ArrayAdapter。然后重写bindView和newView以实现自定义逻辑和行为。