将隐藏值分配给列表视图项

Kev*_*haw 9 android android-listview

我有一个扩展ListView的活动.我用查询结果填充我的列表到sqlite数据库.list元素由start_time,end_time,client_name和status组成.这些是我需要为每个列表项显示的4位信息.

我的问题是:我可以为这个ListView项目分配隐藏的元素吗?

例如,我想存储该ListView项的数据库行的_id字段,这样当我单击它时,我可以根据该数据库行的数据启动一个新活动.

编辑

我用来从我的光标填充列表的代码:

String[] columns = new String[] {VisitsAdapter.KEY_CLIENT_FULL_NAME, VisitsAdapter.KEY_STATUS,VisitsAdapter.KEY_CLIENT_START_TIME, VisitsAdapter.KEY_CLIENT_END_TIME};

// the XML defined views which the data will be bound to
int[] to = new int[] { R.id.name_entry,R.id.number_entry,R.id.start_time_display,R.id.end_time_display  };

SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(HomeScreen.this, R.layout.list_element, cur, columns, to);
Run Code Online (Sandbox Code Playgroud)

其中R.layout.list_item是我的列表项的XML.我来自PHP/HTML背景,所以我通常会在这里做一个隐藏字段来保存我的_id值,然后我可以在单击列表项后访问它.我可以在android中做类似的事吗?我可以在我的xml布局中放置一个隐藏的_id字段吗?

Jan*_*usz 19

您应该尝试从Web开发框架中稍微放松一下.无需在视图中的隐藏字段中存储id这样的内容.这会将您的数据与您的用户界面混合在一起,并产生许多混淆和不必要的视图对象.

如果您使用sqlite数据库来存储值,则应使用CursorAdapter来管理列表项.CursorAdapter存储从数据库获得的结果,并管理数据向用户显示的方式.如果您随后在ListView上注册onItemClickListener,则侦听器将接收适配器以及在适配器中单击其单元格的数据项的位置.现在,您可以使用getItem检索指向用于创建listitem的数据库结果的游标.现在,您可以从数据库结果中获取未向用户显示的id或所有其他值,并将其附加到意图以启动下一个活动.

  • "你应该尝试从网络开发框架中稍微放松一下." +1 (3认同)
  • 感谢您的答复.在列表项侦听器上搜索了文档之后,我发现onListItemClick会自动传递游标结果的rowID.(数据库中的_id列).因为我认为我必须手动将它添加到列表项中,所以我认为这一切都是错的(正如你所指出的那样),我没有意识到android会自动处理这个问题.谢谢,接受了答案. (2认同)