如何将一些"元数据"附加到Android Listview项目?

ran*_*guy 2 sqlite android listview

class Venue {
  private int id;
  private String name;
}
Run Code Online (Sandbox Code Playgroud)

我用类似的东西填充ListView

List<String> venueNames = data.getVenueNames();
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, venueNames));
Run Code Online (Sandbox Code Playgroud)

因此,在用户选择特定列表项之后,我想使用场地ID进行SQLite查询,但在创建场地名称时此信息会丢失.你们是怎么解决这个问题的?

编辑:我应该提到,不能保证场地名称是唯一的.

Com*_*are 7

你的问题在这里:

List<String> venueNames = data.getVenueNames();
Run Code Online (Sandbox Code Playgroud)

不要那样做.你是那个"失去"信息的人.如果你不想失去它,不要失去它.

最简单的事情是创建一个ArrayAdapter<Venue>,并且具有VenuetoString()回报name.然后,呼唤getItem()你的ArrayAdapter<Venue>遗嘱将返回Venue.