2016-05-07 2 views
0

シナリオは次のとおりです。はバンドルを使用してフラグメントにActivityからデータを送信するNULLポインタ例外を与える

私はページャはそれにフラグメント(MyFragment.java)を作るとMainActivity(MainActivity.javaを)持っています。

私は、Main2Activity(Main2activity.java)というアクティビティをもう1つ持っています。

Main2ActivityからMyFragmentにデータを送信したいと思います。

Main2Activity.java:

public class Main2Activity extends AppCompatActivity{ 

    private String myString = "hello"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 

      Bundle bundle = new Bundle(); 
      bundle.putString("path1", "Hey Brother"); 

      MyFragment frgmentObj = new MyFragment(); 
      frgmentObj.setArguments(bundle); 

    } 

MyFragment.java:

public class MyFragment extends android.support.v4.app.Fragment{ 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

String brother = getArguments().getString("path1"); // Here showing NPE 
    return view; 
} 
} 

しかし、そのは

 java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference 

パッケージを私を助けてください私にnullポインタ例外を与えることは同じである 感謝

+0

最初に実行されるアクティビティはどれですか? –

+0

@Smatiz - MainActivity –

+0

@Smatiz - First - MyFragment.java、その後Main2Activity、Main2ActivityからMyfragmentにデータを送信する必要があります。私は断片に戻ってくることを意味する。だから、私はあなたの質問は、答えはMain2Activityだと思います。 –

答えて

0

この方法を試してください。

Bundle bundle = this.getArguments(); 
String brother = bundle.getString("path1"); 

希望すると、これが役立ちます。

+1

その断片ではないので、Bundle bundle = getArguments();を使用しました。 文字列brother = bundle.getString( "path1");しかし、それは私を助けていない。 –

+0

これは 'onCreateView'ではなく' onCreate'で行います。 –

+0

その断片。アクティビティではありません。 –

関連する問題