如何列出每个项目在Android中具有关联信息的项目?

时间:2011-12-01 17:12:15

标签: java android

如何制作每个项目在Android中具有相关信息的项目列表?

例如,我希望能够拥有一个国家/地区列表,然后点击该国家/地区,找到与该国家/地区相关联的人口,语言和/或电子邮件。

我发现以下链接显示了如何制作一个简单的列表但不是如何点击一个项目并获取与该县相关的信息。

http://developer.android.com/resources/tutorials/views/hello-listview.html

如何在不创建数据库的情况下执行此操作,这对我来说似乎有点过分了?

3 个答案:

答案 0 :(得分:0)

您可以制作自定义列表适配器

  • 发送您所在国家/地区的ArrayList
  • 显示字段" name"列表元素中的国家/地区对象(在适配器内部,请参阅下面的链接)。
  • 绑定列表的侦听器,以便在用户点击时做出反应。

当用户最终点击某个项目时,您将获得该国家/地区对象并使用它进行进一步处理。

或者,制作一个hashmap,映射国家/地区名称与其代表的实际对象之间的关系,并在需要进行映射时引用它。

列表适配器: http://developer.android.com/reference/android/widget/ListAdapter.html

答案 1 :(得分:0)

你创建了你的字符串列表,然后你可以创建一个`HashMap

像这样:

class PopulationInformation {

    // add fields
    String name;
    int population;
    String language;

    //pretend there's a constructor

    // should override hashcode and equals, but right now
    // default works
}

然后你可以做

Map<String,PopulationInformation> map = new HashMap<String,PopulationInformation>();
map.put("United States",new PopulationInformation("United States",320000000,"Engish"));
map.put("Canada",new PopulationInformation("Canada",30000000,"French/Engish"));

然后当您在列表中选择某些内容时

String selected = ... // how did you select?
PopulationInformation info = map.get(selected);
String infoString = info.name + "'s population is " + info.population 
                  + ". They speak " + info.language + ".";

答案 2 :(得分:0)

你能不能只设置一个你想要存储的私有成员的Country对象,然后使用ListView / ListActivity来显示这些国家?

Vogella here

提供了一个教程

第4节涵盖了你需要的大部分内容。