java - How to catch passed data (between two fragments) at the right time? -


this might long one:

i have 2 fragments, 1 includes google maps , other 1 ordinary fragment (called infofragment) filled textviews.

on textview want next:

1. change infofragment map fragment (via tabs) 2. send textview id map fragment 3. zoom on marker same id     (markers stored in hashmap) 

i implemented onclicklistener (in infofragment):

linlayout.setonclicklistener(new view.onclicklistener() {      @override     public void onclick(view view) {         toast.maketext(getcontext(), "clicked" + id, toast.length_long).show();         tablayout tablayout = (tablayout) getactivity().findviewbyid(r.id.sliding_tabs);         tablayout.gettabat(0).select();     } }); 

and working great, tabs switched , right id stored in variable.

now, want send id map fragment, check hashmap, chose marker same id , zoom on it. know how zoom on it, not know how catch data?

if use singleton class (which store id), in map fragment should catch data?

edit: if call method zoomontextviewclick():

private void zoomontextviewclick(final googlemap mmap) {     sharedpreferences sp = preferencemanager.getdefaultsharedpreferences(this.getcontext());     textviewid = sp.getint("text_id", -1);     if (textviewid != -1) {         markeroptions mark = hash.get(textviewid);         mmap.animatecamera(cameraupdatefactory.newlatlngzoom(mark.getposition(), 8));     }     //on app restart     sharedpreferences.editor editor = sp.edit();     editor.putint("text_id", -1);     editor.apply(); 

in oncreateview this:

public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) {     view rootview = inflater.inflate(r.layout.map_view, container, false);      mview = (mapview) rootview.findviewbyid(r.id.mapview);     mview.oncreate(savedinstancestate);      mview.onresume(); // needed map display      mview.getmapasync(new onmapreadycallback() {         @override         public void onmapready(googlemap mmap) {             googlemap = mmap;             //some other stuff happening             zoomontextviewclick(mmap);          }     });      return rootview; } 

it work first time (when run app)

if call same method in onresume() this:

@override public void onresume() {     super.onresume();     mview.onresume();      mview.getmapasync(new onmapreadycallback() {         @override         public void onmapready(googlemap mmap) {             googlemap = mmap;             zoomontextviewclick(mmap);          }     }); } 

nothing happens.

edit #2:

private void settabs() {     // viewpager , set it's pageradapter can display items     viewpager viewpager = (viewpager) findviewbyid(r.id.viewpager);     viewpager.setadapter(new fragpageradapter(getsupportfragmentmanager(),             mainactivity.this));      // give tablayout viewpager     tablayout tablayout = (tablayout) findviewbyid(r.id.sliding_tabs);      tablayout.setupwithviewpager(viewpager);  } 

this code initializes tabs.


Comments

Popular posts from this blog

mysql - Dreamhost PyCharm Django Python 3 Launching a Site -

java - Sending SMS with SMSLib and Web Services -

java - How to resolve The method toString() in the type Object is not applicable for the arguments (InputStream) -