2011-12-05 81 views
2

我目前有一個應用程序,嚴重依賴於Intents和開始活動前給予他們的額外資訊。在調用web服務時使用這些額外功能,這反過來又提供了需要顯示的內容你可以給片段上的替代品嗎?

我試圖將該模型轉換爲靜態Fragment(讓我們稱之爲播放器)在我的底部屏幕,另一個Fragment(讓我們稱之爲內容),它會顯示主要內容。通過選擇主屏幕上的選項,其他內容將通過替換內容Fragment顯示。

但是,這些新的Fragments目前是Intents,如此大量依賴臨時演員。 有沒有一種方法可以用新的代替Fragment,但仍然可以添加額外功能?

如果是這樣,讓我們​​說,我有以下的代碼:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
     ft.replace(R.id.fragment_holder, new MusicAlbumList(), "albumlist"); 
     ft.commit(); 

我怎麼會在額外添加到MusicAlbumList?

如果這是不可能的,在強制關閉之前,由於缺少重要數據,我將如何獲取當前正在通過額外數據傳入我的新Fragment的數據?

回答

8

設定值,也可以做到這一點

MusicAlbumList fragment = new MusicAlbumList(); 
Bundle args = new Bundle(); 
args.putString("StringName","Value here"); 
fragment.setArguments(args); 

然後做你的替換的東西。然後在片段onStart或onCreate調用this.getArguments();來拉動捆綁包,然後讓你的額外出去。

2

變化MusicAlbumList從默認的構造函數構造一個與像新MusicAlbumList參數(INT ARG1,...),並通過你想通過構造

+0

這是我的第一個想法。猜測我將不得不重寫所有的類到碎片然後(目前使用FragmentActivities) –

+0

我一直在使用上述方式相當成功 – pankajagarwal

+0

好吧,謝謝,我會給這個旋轉。 –

相關問題