0

I would like to call method of MainFragment.java from MainActivity.java

Here what I have tried:

MainActivity.java

MainFragment mainFragment;

........

mainFragment = new MainFragment();

.........

mainFragment.deom();

MainFragment.java

public void deom() {

    Toast.makeText(getActivity(), "Demo", Toast.LENGTH_LONG).show();

}

Log

java.lang.NullPointerException
at android.widget.Toast.<init>(Toast.java:93)
at android.widget.Toast.makeText(Toast.java:241)
at com.example.x.b(Unknown Source)
at com.example.MainActivity.onOptionsItemSelected(Unknown Source)
at android.app.Activity.onMenuItemSelected(Activity.java:2633)
at android.support.v4.b.ao.onMenuItemSelected(Unknown Source)
at android.support.v7.app.t.onMenuItemSelected(Unknown Source)
at android.support.v7.view.n.onMenuItemSelected(Unknown Source)
at android.support.v7.view.n.onMenuItemSelected(Unknown Source)

May I know where I am doing mistake ? What I have missed ? Why I am getting NPE.

Sophie
  • 2,594
  • 10
  • 41
  • 75

1 Answers1

1

You have to initialize MainFargment.

MainFragment mainFragment = (MainFragment) getFragmentManager.findFragmentById(R.id.theId);

mainFragment.deom();
Newaj
  • 3,992
  • 4
  • 32
  • 50
  • I forgot to initialize that's why I tapped your answer as useful, but I cannot accept because I am still getting same NPE... check updated code and log above – Sophie Aug 09 '17 at 21:32
  • What about you eventually start putting some efforts in debugging own code? – Marcin Orlowski Aug 09 '17 at 21:43
  • @Sophie , well you are using fragment. I've updated my answer. Check it out. – Newaj Aug 10 '17 at 04:34
  • @Sophie , And if you use Support Fragment, then use "getSupportFragmentManager" instead of "getFragmentManager". – Newaj Aug 10 '17 at 05:03