2012-02-26 49 views
0

当我从android sample看,如果我用SimpleCursorAdapter,它会自动设置列表视图表中的主键的ID,所以如果我拨打下列事件:化妆的ListView唯一可识别的android系统

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

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

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

我的表只有两列,long类型的_Id和主键,以及nvarchar类型的名称。

谢谢。

+0

所以...你想找出点击了哪个项目时onListItemClick被称为是关键? – m1ntf4n 2012-02-26 19:03:48

+0

是的,所以我可以处理数据库 – 2012-02-26 19:05:48

+0

适配器中单击项目的位置存储在参数位置。呃...我想这不是你的意思? – m1ntf4n 2012-02-26 19:10:29

回答

1

由于您的List<T>由自定义数据容器对象组成,因此您只需将方法(如getPrimaryKey())添加到该数据容器类。现在,在方法onListItemClicked,你可以轻松地阅读做

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

或者干脆

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

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

+0

是否有教程或样品?我是android开发的新手。 – 2012-02-26 19:09:07