我想将活动中的数据发送到我的片段。我现在正在做的是以下内容。
String itemDescription = workAssignmentItem.getDescription();
Bundle bundle = new Bundle();
bundle.putString("itemDescription", itemDescription);
FirstFragment.newInstance(bundle);
然后在我的片段中,我做了:
public static FirstFragment newInstance(Bundle bundle) {
FirstFragment fragment = new FirstFragment();
fragment.setArguments(bundle);
return fragment;
}
然而,当我尝试在我的onCreate中执行'getArguments()。getString(“itemDescription”);'时,如下:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
description = getArguments().getString("itemDescription");
}
它不起作用。 getArguments返回null。我不太清楚为什么它会返回null,因为互联网上的多个消息来源说这是实现它的方法。
有人能指出我正确的方向吗? 提前谢谢
答案 0 :(得分:0)
你不需要bundle来传递Fragment中的单个字符串
String itemDescription = workAssignmentItem.getDescription();
FirstFragment.newInstance(itemDescription);
片段更改为:
public static FirstFragment newInstance(String itemDescription){
FirstFragment fragment=new FirstFragment();
bundle args=new Bundle();
args.putString("itemDescription",itemDescription);
fragment.setArguments(args);
return fragment;
}
和onCreate像这样:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
description = getArguments().getString("itemDescription");
}