提交后包从片段中消失了吗?
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().
我有一个 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().