I use the NavigateDrawer Activity and I need to transfer the data from the Activity to the Fragment. When trying to get data in a Fragment in the getArguments () method. GetString ("data"); - I get java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.BaseBundle.getString (java.lang.String)' on a null object reference
Activity.class
public class MainActivity extends Activity implements onEventListener,...{ private static FragmentManager fragmentManagerPass; private DrawerLayout myDrawerLayout; private ListView myDrawerList; private android.support.v7.app.ActionBarDrawerToggle myDrawerToggle; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_nav_draw); /* ... */ } /* ... */ @Override public void mySomeEvent(String inputPair) { Toast.makeText(this, "Activity receive(adopt) " + input_mySome, Toast.LENGTH_SHORT).show(); fragmentManagerPass = getFragmentManager(); MyFragment argumentFragment = new MyFragment(); Bundle data = new Bundle(); data.putString("data", "This is Argument Fragment fromActivity"); argumentFragment.setArguments(data); } private class DrawerItemClickListener implements ListView.OnItemClickListener { @Override public void onItemClick( AdapterView<?> parent, View view, int position, long id ) { displayView(position); } } private void displayView(int position) { android.app.Fragment fragment = null; switch (position) { case 0: fragment = new MainList(); break; case 1: fragment = new ScreenTwo(); break; default: break; } if (fragment != null) { android.app.FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.content_frame, fragment).commit(); myDrawerList.setItemChecked(position, true); myDrawerList.setSelection(position); setTitle(viewsNames[position]); myDrawerLayout.closeDrawer(myDrawerList); } else { // error in creating fragment Log.e("MainActivity", "Error in creating fragment"); } } Fragragment.class
public class MyFragment extends Fragment { final String LOG_TAG = "myLogs"; Button buttonOne,buttonTwo ; TextView txtOne,txtTwo,txtThree,txtFour; int myInt; String myStr; // private OnFragmentInteractionListener mListener; public MyFragment() { // Required empty public constructor } public interface onEventListener { public void mySomeEvent(String s); } onEventListener myEventListener; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_converter,container,false); txtOne = (TextView) view.findViewById(R.id.textView7); Button buttonOne = (Button) view.findViewById(R.id.btn2); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // do something Toast.makeText(getActivity(),"button",Toast.LENGTH_SHORT).show(); txtFour.setText("hello1"); } }); //receive data from activity //Get Argument that passed from activity in "data" key value String getArgument = getArguments().getString("data");//java.lang.NullPointerException txtOne.setText(getArgument);//set string over textview Log.d(LOG_TAG,"Bundle Fragmnet is "+getArgument); Log.d(LOG_TAG, "Fragment2 onCreateView"); return view; } }