如何在android

时间:2017-02-22 17:05:46

标签: android string android-fragments store message-passing

我有两个片段,我想将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

1 个答案:

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