当我从android sample读取时,如果我使用SimpleCursorAdapter,它会自动将列表视图的id设置为表的主键,因此如果我调用以下事件:
protected void onListItemClick(ListView l, View v, int position, long id)
{
......
}
通过读取id参数,我可以轻松确定选择了哪个数据库项(行)。
但是我通过实现自己的自定义ArrayAdapter来填充列表视图。正如我在前question中所解释的那样。所以我不知道如何获得列表视图项的选定ID。
我的表只有两列,长类型的_Id是主键,名称是nvarchar类型。
感谢。
答案 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以实现自定义逻辑和行为。