我有一个活动,其唯一目的是托管片段。我使用Intent开始此活动,然后使用来自Intent的信息将args添加到我想要添加到新Activity的Fragment中。
这是SingleClickerActivity中的onCreate(此活动由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()
返回null。捆绑有噗。它在哪里迷路?
答案 0 :(得分:0)
解决!
onCreate
方法称为super,它创建了另一个没有参数的片段。我得到了两个片段,一个是args,一个是没有。空的是那个与活动相关的人。我在onCreate
中取出了SingleClickerActivity
,以便我使用继承的版本,然后移动行UUID clickerId = (UUID) getIntent().getSerializableExtra(EXTRA_CLICKER_ID); into createFragment().