2013-07-23 52 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