0

我正在创建一个Buttons在第一个屏幕上有几个的应用程序。每个都Button将解析一个单独的XML文件,并应该从该信息创建一个嵌套列表。

所有XML文件都具有以下结构:

<blalist>
<house>
     <name>Blaname1</name>
     <eaddress>195 bla steet</eaddress>
     <caddress>195 bla strasse</caddress>
     <telephone>123456</telephone>
</house>
<house>
     <name>Blaname2</name>
     <eaddress>15 bla steet</eaddress>
     <caddress>15 bla strasse</caddress>
     <telephone>12345685</telephone>
</house>
</blalist>

单击第一个按钮后,我想生成一个ListView仅由标签“名称”中的名称组成的名称。所以列表应该只显示 Blaname1,Blaname2...
单击其中一个名称后,所有其他标签都应显示为内容;标签“eaddress”,“caddress”,“telephone”和三个额外的按钮。

基本上是一个 3 个屏幕的场景。带有主要按钮的第一页。第二页显示仅使用名称生成的列表。第三个屏幕显示单击的特定名称的详细信息。

我该怎么做?我发现了大量用于解析 xml 的信息ListView以及一些关于的信息,ExpandableListView但我无法真正了解如何处理这个问题。请帮忙!

4

2 回答 2

0

您需要做的就是解析 XML 并以SimpleExpandableListAdapter类支持的格式构建数据。

1) 团体 List<HashMap<String, String>> lstGroups

2) 对于组的子项 List<ArrayList<HashMap<String, String>>> lstGroupItems

然后你可以使用SimpleExpandableListAdapter

SimpleExpandableListAdapter expListAdapter = new SimpleExpandableListAdapter(
                getApplicationContext(), lstGroups,
                R.layout.group_row, // Group item layout XML.
                new String[] { "Group Item" }, // the key that will identify group in `lstGroups`.
                new int[] { R.id.row_name }, // ID of each group item.-Data
                lstGroupItems, // childData describes second-level
                R.layout.child_row, // Layout for sub-level entries(second level).
                new String[] { "Sub Item" }, // Keys that will identify child items in `lstGroupItems`
                new int[] { R.id.grp_child }
        );
setListAdapter(expListAdapter); 

你可以参考这个例子

ANDROID中使用SimpleExpandableListAdapter的Expandable ListView,一个简单的例子。

添加 :

如果您有大量数据,我认为您应该使用 SQLiteDatabase,否则您可以按以下格式构建数据

Map<String, Map<String, String>> mapHouses;

这里的键将是房屋名称,其值将再次是包含房屋属性和相应值的 Map。

您将需要访问mapHouses不同的活动,以便您可以在应用程序上下文(即Application类)中拥有相同的活动,并将房屋名称传递给需要显示房屋详细信息的活动。但是您最终会将大量数据保存到内存中,如果您的应用程序被 Android 杀死,这些数据可能会丢失。

于 2012-09-27T12:21:33.243 回答
0

根据您对 Vishal 的评论,您的问题实际上是在询问如何构建整个应用程序。

你需要建立

  • 带有启动列表活动的按钮的主要活动
  • 显示名称列表的列表活动
  • 可用于显示与名称关联的详细信息的详细信息活动

此外,您还需要决定将用于反序列化 XML 并以某种方式存储它的技术。我建议使用 XStream 进行反序列化,但有很多选项,您可能已经有了偏好。

然后,您需要存储已反序列化的 Name 对象。我建议您使用 ORMLite 或 DB4O。

您将需要一种方法来加载所有名称的列表,以及从您选择的任何持久性技术中加载特定名称的详细信息的方法。

您最好的选择是尝试做这些事情,然后发布有关您尝试构建应用程序的特定问题的新问题。

希望这会有所帮助......而且不仅仅是教奶奶吸鸡蛋

于 2012-09-27T12:57:42.190 回答