getArguments 返回 null
getArguments returning null
我想将数据从 activity 发送到我的片段。我现在正在做的是以下内容。
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 returns 空。我不太清楚为什么它 returns 为 null,因为互联网上的多个来源都说这是这样做的方法。
谁能指出我正确的方向?
提前致谢
你不需要 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");
}
我想将数据从 activity 发送到我的片段。我现在正在做的是以下内容。
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 returns 空。我不太清楚为什么它 returns 为 null,因为互联网上的多个来源都说这是这样做的方法。
谁能指出我正确的方向? 提前致谢
你不需要 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");
}