getArguments返回null

时间:2017-01-09 19:40:52

标签: android android-fragments android-activity bundle

我想将活动中的数据发送到我的片段。我现在正在做的是以下内容。

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,因为互联网上的多个消息来源说这是实现它的方法。

有人能指出我正确的方向吗? 提前谢谢

1 个答案:

答案 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");
}