android - How to recreate all fragments in ViewPager: -
i have problem, have fragmentactivity
viewpager
, viewpageradapter
.
in viewpager have 3 fragments
each of them contains tablelayout
gets populated programmaticly using 2darraylist
.
on click of button in fragmentactivity
layout, filter data in 2darraylist
, need recreate 3 fragments
new dataset (run oncreateview
method in of them).
so create onclicklistener
button:
private class slicerselectedonclicklistener implements onclicklistener { private odsharedslicer slicer; public slicerselectedonclicklistener(odsharedslicer slicer) { super(); this.slicer = slicer; } public void onclick(view v) { string slicervalue = ((button) v).gettext().tostring(); log.d(tag,"slicer value: "+ slicervalue +" chosen"); application.currentreport.getodsharedslicers().get(0).getsharedslicerselectedmemebers().add(slicervalue); viewgroup parent = (viewgroup) ((button) v).getparent(); (int = 0; < parent.getchildcount(); i++) { if ((parent.getchildat(i) != v) && (parent.getchildat(i) instanceof togglebutton)) { ((togglebutton) parent.getchildat(i)).setchecked(false); } } mpageradapter.notifydatasetchanged(); } }
as can see have mpageradapter.notifydatasetchanged();
suggested here:
how recreate fragment viewpager intentionally?
at end of method, expect adapter recreate fragment
s, oncreateview
of fragments never runs.
can 1 suggest doing wrong. assistance appreciated.
for still face same problem faced same problem when have viewpager 7 fragment. default these fragments load english content service problem here want change langage settins activity , after finish settings activity want viewpager in main activity refresh fragment match langauge selection user , load arabic content if user choose arabic here did work first trr :d
1. must use fragmentstatepageradapter* .
mainactivity overrided onresume , did following
if (!(mpageradapter == null)) { mpageradapter.notifydatasetchanged(); }
i ovveride getitemposition() in mpageradapter , make return position_none.
@override public int getitemposition(object object) { return position_none; }
works charm
Comments
Post a Comment