java - How to access a method in fragment class from parent Activity? -


i implementing database need prepare list or update everytime make changes. have fragment on top of mainactivity , can't perform operations within mainactivity of operations done in mainactivity , others in fragment class. in fragment class extends fragment has method called preparelist(), updates database , populate data. in mainactivity performing delete operations using default overflow menu item, but here need call preparelist() method in order display performed operations or app has closed in order diplay operation has been performed

i have tried following code on web

myfragment fragment= (myfragment)getsupportfragmentmanager().findfragmentbyid(r.id.frag); ( (myfragment)fragment).preparelist(); 

but shows error

java.lang.nullpointerexception: attempt invoke virtual method...on null object reference 

basically want know how call preparelist() method within mainactivity without making other abstract class or that

solution 1

call public method of fragment activity:

myfragment fragment= (myfragment)getsupportfragmentmanager().findfragmentbyid(r.id.frag); if(fragment != null)     ( (myfragment)fragment).preparelist(); else     toast.maketext(this, "fragment null", toast.length_short).show(); 

solution 2

move functionality of delete fragment:

  1. move delete operations in fragment,
  2. in fragment, write:

    @override public void onactivitycreated(bundle savedinstancestate) {     super.onactivitycreated(savedinstancestate);     sethasoptionsmenu(true);        //this fragment can override                                 //options menu } 
  3. now same in activity, overriding oncreateoptionsmenu(), onoptionsitemselected etc. please note method signatures differ of activity's. see fragment documentation.