将唯一ID设置为ListView Android

时间:2015-02-01 16:52:15

标签: android listview

我有一个ListView,它显示来自数据库的人员信息。是否可以在listview中为每个项添加像personid这样的特定ID,以便我可以在单击列表视图项时将该ID传递给另一个页面。我正在为ListView使用SimpleAdapter。 我看到了一个链接here。但这并不能完全满足我的要求。 有没有办法直接设置Id,就像我们在SimpleAdapter中设置的hashmaps列表中所做的那样

1 个答案:

答案 0 :(得分:2)

使用SimpleAdapter时,为其提供了MapsList。 你应该做的是将你的personid作为一个条目包含在你的Map中,你不必将它绑定到你行中的任何显示元素,所以它不必显示。

例如,如果您的地图名为rowMap,并且该ID名为personId

rowMap.put("person_id", personId);
adapterList.add(rowMap);

然后,当您选择项目时,将使用传递给侦听器的位置检索Map。完成后,只需致电

map = adapterList.get(pos);
selectedId = map.get("person_id");

更新了SimpleAdapter

的更多信息

以下是SimpleAdapter的更多信息,下面是构造函数上的doc供参考。

您的想法是创建地图的ArrayList,每个地图条目必须至少您要显示的数据,但它可以包含更多  数据比你想要显示的数据。

您提供的fromto数组会调整您提供给您提供的视图的地图条目。如果在地图条目中包含额外信息,则会忽略它而不显示。因此,在这种情况下,假设您不想显示personid,您可以将personid添加到Map条目,但不将其添加到fromto数组

  

public SimpleAdapter(Context context,List>   data,int resource,String [] from,int [] to)

     

在API级别1构造函数

中添加      

参数

     

context:与此关联的View的上下文   SimpleAdapter正在运行

     

数据:地图列表。列表中的每个条目   对应于列表中的一行。地图包含每个数据   行,并应包括“from”

中指定的所有条目      

resource:定义视图的视图布局的资源标识符   对于此列表项。布局文件至少应包含那些   在“to”中定义的命名视图

     

from:将列出的列名   添加到与每个项目关联的地图。

     

to:应该的观点   显示“from”参数中的列。这些都应该是TextViews。   此列表中的前N个视图被赋予前N个的值   from参数中的列。