2013-04-07 83 views
1

我在我的主要Activity中添加我的Fragments。可以在Fragment上更改我的Fragment更改嗎?從我的ListFragment中刪除碎片

MyFragment mList = new MyFrament(); 
getSupportFragmentManager() 
.beginTransaction()   
.remove(mList) 
.commit(); 

在其中Fragment類的生命週期方法應該我所說的remove()replace()方法。我只是困惑我是否應該給他們打電話onCreate()onCreateView()onActivityCreate()

+0

如果你想'Fragment'除去本身 – gipi 2013-04-07 19:16:14

+0

@gipi目前尚不清楚:沒了......當我一個片段裏面,有需要更改/刪除的右側和左側菜單片段。 – theJava 2013-04-07 19:19:19

回答

2

爲了什麼,我知道你調用從父ActivityFragmentActivity類在這種情況下remove()replace()方法更好,而不是從在Fragment

而且也沒有必要實例化一個片段的新實例:

MyFragment mList = new MyFrament(); 
如果你想

只是使用SupportFragmentManager將其刪除。

UPDATE:

關於你的第二個問題,如果你目前正在從容器中取出Fragment(任何Layout你把你的片段,在接下來的情況下R.id.containerForFragments),那麼你已經實例化這個Fragment的一個實例,並使用它補充:

getSupportFragmentManager() 
.beginTransaction()   
.add(R.id.containerForFragments, mList, tag) 
.commit(); 

命令。正如你所看到的,你可以指定一個標籤,以您的片段,您可以用以後得到這個Fragment例如從FragmentManager回用:

fragmentManager.findFragmentByTag(tag); 

命令。

所以刪除Fragment例如這樣做:

fragmentTransaction.remove(fragmentManager.findFragmentByTag(tag)).commit(); 
+0

我該如何獲得參考mList – theJava 2013-04-07 19:19:57

+0

您可以使用findFragmentById()方法 – gipi 2013-04-07 19:22:44

+0

@gipi:u能告訴我findFragmentById()的一個例子,怎麼如果都面臨加入我的碎片/在一個單一的FrameLayout替代...如何我可以確定.. – theJava 2013-04-07 19:25:47