如何创建N级动态更改列表视图

时间:2013-07-23 06:25:02

标签: android json listview android-listview multi-level

我在项目中面临问题。我想做的是,
    我需要将json响应解析为listview。

enter image description here

点击行我会得到一些id,现在我需要使用该id调用另一个webservice,它应该显示另一个列表。假设我点击了第一行,即Board“A”。然后下一个Listview应该是A的子列表。它可能如下所示

enter image description here

A1,A2等可能有也可能没有子菜单。

我可以从点击的行中获取id。如果列表为空则表示不再有子菜单。 我不知道如何设计这个系统?有谁有想法吗?提前致谢

PS:我将不得不进行不同的webservice调用,以获取每个子菜单,这些子菜单取决于从listview行传递的ID,点击

1 个答案:

答案 0 :(得分:1)

一些让你入门的想法:

  1. 不要使用ListView,而是查看GridView。 ListView不支持多个列(您必须手动支持)并且为此目的引入了GridView。

  2. 假设您的初始列表显示在自己的活动中。这意味着您有一个活动在其onCreate()上查询Web服务,然后在从Web服务异步返回时在ListView / GridView中显示结果。

  3. 将子菜单保存在自己的活动中会很方便。这意味着您应该为子菜单创建另一个活动(可能它可以与第一个共享代码,甚至可以从中派生代码以减少代码重复)。此活动将在其Intent参数(请查看Intent.putExtraIntent.getExtra)中收到,该参数告诉它单击了哪一行(它通常应包含您要传递的字符串过滤器到网络服务)。创建此活动后,在其onCreate中,它应该像第一个活动一样查询Web服务,并在其自己的ListView / GridView中显示其结果。

  4. 要连接两个活动,您需要捕获第一个活动中的点击事件,找出点击了哪一行,然后创建Intent以显示第二个活动,通过额外并展示它。

  5. 此方法将允许用户在完成后使用后退键关闭第二个活动。一旦被解雇,用户将返回第一个活动,他们可以点击另一行。