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 withinmainactivity
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:
- move delete operations in fragment,
in fragment, write:
@override public void onactivitycreated(bundle savedinstancestate) { super.onactivitycreated(savedinstancestate); sethasoptionsmenu(true); //this fragment can override //options menu }
now same in activity, overriding
oncreateoptionsmenu()
,onoptionsitemselected
etc. please note method signatures differ ofactivity
's. see fragment documentation.