我有两个片段,我想将fragment2字符串发送到fragment1并将其存储在fragment1中的字符串中。当我尝试以正常方式执行此操作时,它会向我显示我已发布的错误。有人请帮助我。
Fragment2.class
Bundle bundle=new Bundle();
bundle.putString("message", value);//value= my value from code
Fragmentclass2 frag2=new Fragmentclass2();
frag2.setArguments(bundle);
Fragment1.class
final String store= getArguments().getString("message");
错误日志:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference
答案 0 :(得分:0)
我建议您使用newInstance()
片段一般做法。
为此,您应该考虑在newInstance()
中创建Fragmentclass1
方法,如下所示:
public static Fragmentclass1 newInstance(String value) {
Fragmentclass1 fragmentclass1 = new Fragmentclass1();
Bundle args = new Bundle();
args.putString("message", value);
fragmentclass1.setArguments(args);
return fragmentclass1;
}
在Fragmentclass2
致电:
Fragmentclass1.newInstance("YOUR_MESSAGE")
这将创建Fragmentclass1
所以最后要做的是检索Fragmentclass1
的onCreate中的参数。就像你在做的那样:
final String store= getArguments().getString("message");