片段不能啓動,必須將它們添加到容器中。
片段並不是要獨立運作,他們需要一個封閉的活動。
具有以下佈局:
[...]
<FrameLayout android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/detailsElementBackground" />
[...]
您將片段像這樣:
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.container, newFragment);
transaction.commit();
您可以通過使用捆綁並創建片段參數傳遞給片段如下:
TestFragment newFragment = new TestFragment();
Bundle args = new Bundle();
args.putString("Hello world!");
newFragment.setArguments(args);
這必須在交易之前完成。
如需進一步信息請參考上編輯代碼official documentation
注意:您必須從活動中的FrameLayout是一部分內部調用事務。
或者使用比較髒的解決方法: 在主營:
public class Main extends Activity{
public static Main currentInstance;
public void onCreate(Bundle boomerang){
currentInstance = this;
}
}
播放列表中的活動,然後使用Main.currentInstance.getSupportFragmentManager()
等
但我不會推薦它。
我已經編輯我的代碼。但正如在那裏提到的,我不會嘗試從另一個活動中替換片段。 – Ch4t4r