2013-07-23 53 views
-1

即时通讯面临我的项目中的问题。我试图做的是,
我需要解析一个JSON响应到一个列表视图。如何创建一个N级动态更改列表视图

enter image description here

同时单击行我会得到一些ID,现在我需要使用该ID来调用另一个Web服务,它应该表现出另一个列表.Suppose我点击第一行,即董事会“A”。然后下一个Listview应该是A的子列表。它看起来像下面

enter image description here

A1,A2等可能或maynot有子菜单。

我可以从被点击的行中得到id。如果列表为空意味着没有更多的子菜单。 我不知道如何设计这个系统?有人有什么主意吗?在此先感谢

PS:我会做出不同的Web服务调用获得依赖于ID IM从列表视图行传递每个子菜单中单击

回答

1

有一些想法,让你开始:

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

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

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

  4. 要连接两个活动,您需要在第一个活动中捕捉点击事件,找出哪个行被点击,然后创建一个Intent以显示第二个活动,传递额外的内容并显示它。

  5. 这种方法可以让用户在完成后使用后退键关闭第二个活动。一旦被解雇,用户将被返回到第一个活动,他们可以点击不同的行。

+0

这只会在两个级别上正常工作吗?在这里我可能有n级子菜单 – playmaker420

+1

这可以在任意多级别上工作。从每个活动中,您都可以创建子菜单的新活动。 Android将你的所有活动都保存在一个堆栈中,因此用户可以轻松解雇他们,并返回到他想要的层次结构中,并自动为您进行管理。 – talkol

+1

另一个评论,如果你打算有N个等级,你不需要实施N个不同的活动。他们通常会共享相同的代码,只是不同的实例。使用Intent extras为创建时的活动运行时参数提供参数。 – talkol