Tuesday 15 April 2014

Android refresh a fragment list from its parent activity -



Android refresh a fragment list from its parent activity -

i have main activity contains action bar 3 menu buttons in it.

i have fragment within main activity has list.

i able refresh list in fragment main activity, when 1 of menu buttons clicked, or preferably removed rows list.

any help appreciated.

thanks.

public class favourite extends sherlockfragmentactivity { actionbar actionbar; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.favourite); actionbar = getsupportactionbar(); actionbar.setdisplayshowtitleenabled(false); bitmapdrawable bg = (bitmapdrawable)getresources().getdrawable(r.drawable.actionbar_bg); bg.settilemodex(tilemode.repeat); getsupportactionbar().setbackgrounddrawable(bg); getsupportactionbar().seticon(r.drawable.favourite_title); actionbar.setnavigationmode(actionbar.navigation_mode_tabs); actionbar.tab taball = actionbar.newtab(); actionbar.tab tabfavs = actionbar.newtab(); actionbar.tab tabhist = actionbar.newtab(); taball.settext("all"); tabfavs.settext("favs"); tabhist.settext("hist"); taball.settablistener(new mytablistener()); tabfavs.settablistener(new mytablistener()); tabhist.settablistener(new mytablistener()); actionbar.addtab(taball); actionbar.addtab(tabfavs); actionbar.addtab(tabhist); try{ } catch(exception e) { } } @override public boolean oncreateoptionsmenu(menu menu) { menuinflater inflater = getsupportmenuinflater(); inflater.inflate(r.menu.actionbar_itemlist_favourite, menu); homecoming true; } @override public boolean onoptionsitemselected(menuitem item) { switch(item.getitemid()) { case r.id.history: break; case r.id.favourite: intent favact = new intent(this, favourite.class); startactivity(favact); break; case r.id.delete: ///i want able refresh fragmentlist here } homecoming true; } } class mytablistener implements actionbar.tablistener { public void ontabselected(tab tab, fragmenttransaction ft) { if(tab.getposition()==0) { favouriteallwords frag = new favouriteallwords(); ft.replace(android.r.id.content, frag); } else if(tab.getposition()==1) { favouritefavwords frag = new favouritefavwords(); ft.replace(android.r.id.content, frag); } else if(tab.getposition()==2) { favouritehistwords frag = new favouritehistwords(); ft.replace(android.r.id.content, frag); } } public void ontabunselected(tab tab, fragmenttransaction ft) { // todo auto-generated method stub } public void ontabreselected(tab tab, fragmenttransaction ft) { // todo auto-generated method stub } }

////////////////////my list fragment class

public class favouriteallwords extends listfragment { arrayadapter<string> adapter; list<string> stringoffavwords; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); } @override public view oncreateview(layoutinflater inflater, viewgroup group, bundle saved) { adapter = new arrayadapter<string>( inflater.getcontext(), r.layout.row, stringoffavwords); setlistadapter(adapter); homecoming super.oncreateview(inflater, group, saved); } @override public void onactivitycreated (bundle savedinstancestate) { super.onactivitycreated(savedinstancestate); } }

you can accomplish using interface

mainactivity.java

public class mainactivity extends activity { public fragmentrefreshlistener getfragmentrefreshlistener() { homecoming fragmentrefreshlistener; } public void setfragmentrefreshlistener(fragmentrefreshlistener fragmentrefreshlistener) { this.fragmentrefreshlistener = fragmentrefreshlistener; } private fragmentrefreshlistener fragmentrefreshlistener; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); button b = (button)findviewbyid(r.id.btnrefreshfragment); b.setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { if(getfragmentrefreshlistener()!=null){ getfragmentrefreshlistener().onrefresh(); } } }); } public interface fragmentrefreshlistener{ void onrefresh(); } }

myfragment.java

public class myfragment extends fragment { @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view v = null; // view /// code ((mainactivity)getactivity()).setfragmentrefreshlistener(new mainactivity.fragmentrefreshlistener() { @override public void onrefresh() { // refresh fragment } }); homecoming v; } }

android android-fragments android-listfragment

No comments:

Post a Comment