2013-07-14 55 views
0

我有三個ListFragment是一個活動。對於第一listFragment我已經創建了一個ListFragment並與一些的listItem容易膨脹的佈局:如何動態添加兩個或多個ListFragments

setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, getResources.getStringArray(R.string.baal))); 

第二listFragment的項目將根據第一ListFragment的所選擇的項目,並在類似的方式改變所述的第三個listFragment的項目將根據第二個ListFragment的選定項目進行更改。

第一ListFragment是靜態的,因爲它不會依賴於任何其他ListFragment。所以我只是用一些物品來擴充佈局。

但第二和第三listFragments需要的項目須經常更換。因此,我需要在運行時爲每次單擊事件添加新的列表項目以使其膨脹。所以我認爲第二個和第三個LisFragment需要動態創建,每次使用新的列表項目進行膨脹。我怎樣才能做到這一點?我是新的片段,我需要動態UI清晰的概念。提前致謝。

回答

1

可以,例如,嘗試清除您的第二個和第三個片段適配器,然後添加所有必要的項目,這樣你就不需要充氣整個片段,而是隻有內容會改變。還取決於適配器類型,您需要調用notifyDataSetChanged或不要(例如,如果它是ArrayAdapter)。

UPD:在你的主要產品Click事件,你可以這樣寫

  YourAdapter1 adapter1 = getFirstAdapter(); 
      adapter1.clear(); 
      adapter1.addAll(newItem1Collection); 

      YourAdapter2 adapter2 = getSecondAdapter(); 
      adapter2.clear(); 
      adapter2.addAll(newItem2Collection); 

一些代碼,其中YourAdapter1YourAdapter2應該擴展ArrayAdapter,這也將自動調用notifyDataSetChange

+0

謝謝您的回答!你能用一些代碼示例更新你的答案嗎? –

0

我建議你使用標籤,標籤中加入動態的每個選擇,並允許用戶輕掃回取消選擇,有點像麪包屑導航。

你可以在這裏看到相關的問題: Android - How to create tabs on demand using existing layout?

+0

我正在使用導航抽屜。所以我不想使用標籤導航:( –

+0

)你仍然可以使用相同的想法,而不顯示標籤本身。每個選擇將側向滾動列表以顯示較低的級別,並且後退按鈕將返回一級。 – Steelight