提交后包从片段中消失了吗?

Bundle disappearing from fragment after commit?

我有一个 Activity 其唯一目的是托管一个片段。我从一个 Intent 开始这个 activity,然后使用 Intent 中的信息将 args 添加到我想添加到新 Activity.

的片段中

这里是SingleClickerActivity中的onCreate(这个Activity是Intent启动的)。逐步执行此操作时,我已验证该片段具有我要发送的参数。 Fragment has argument (this is right before the transaction step)

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(getLayoutResId());

    UUID clickerId = (UUID) getIntent().getSerializableExtra(EXTRA_CLICKER_ID);
    FragmentManager fm = getSupportFragmentManager();
    Fragment fragment = fm.findFragmentById(R.id.fragment_container);

    if (fragment == null) {
        fragment = createFragment(clickerId);
        fm.beginTransaction()
                .add(R.id.fragment_container, fragment)
                .commit();
    }
}

我制作了片段,它有 args 包,我提交了。但是,当我到达片段的 onCreate:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mClickerId = (UUID) getArguments().getSerializable(ARG_CLICKER_ID);
    mClicker = ClickerBox.get(getActivity()).getClicker(mClickerId);
}

getArguments() returns 空。捆绑包已经放屁了。它在哪里迷路了?

已解决!

onCreate 方法调用了它的 super,它创建了另一个没有参数的片段。我得到了两个片段,一个有 args,一个没有。空的是附加到 activity 的那个。我取出 SingleClickerActivity 中的 onCreate 这样我就可以使用继承的版本,然后移动行 UUID clickerId = (UUID) getIntent().getSerializableExtra(EXTRA_CLICKER_ID); into createFragment().