2017-02-22 11 views
1

私は2つのフラグメントを持っており、fragment1にfragment2文字列を送り、それをfragment1の文字列に格納したいと思います。私は通常のやり方でこれをやろうとすると、私が投稿したエラーが表示されます。誰か助けてください。androidの1つのフラグメントから別のフラグメントに文字列を渡す方法

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

バンドルをFragmentclass2に設定しています... Fragmentclass1ではないはずですか?また、あなたが引数を設定しているオブジェクトのインスタンスを表示していることを確認してください –

答えて

0

私はあなたがnewInstance()フラグメントが一般的に使用することをお勧めします。そのために

あなたはこのようなあなたのFragmentclass1newInstance()メソッドを作成するために検討する必要があります。では

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が作成されますので、最後までdoはFragmentclass1のonCreateの引数を取り出すことです。あなたがしていたように:

final String store= getArguments().getString("message"); 
+0

これは私が書く必要があるコードです –

+0

はい、このコードを使用することができます。あなたはそれを理解しましたか? –

+0

あなたは明確に答えられますか?私はインスタンスとすべてを使用して明確なコードを意味する –

関連する問題