java - How to update TextView in parant Activity based on current ImageView in ViewPager -
im new android dev , im struggling annoying problem days. tried google , many articles. none helped. tried irc on line couldnt straight answer. maybe can direct me in right direction...
my app viewpager holds single fragment class. inside fragment class, there switch case block determines based on position, image load resources folder. thing is, have textview view in parent activity needs updated according current picture. image title. used:
textview tv = (textview) getactivity().findviewbyid(r.id.titletv); in oncreateview() access textview within fragment. , added a:
tv.settext("picture 1"); for instance, switch case block. way, when picture shown, text view gets updated. problem is, method retrieves new fragment each slide, getitem(int position) in parent activity, gets called twice load more 1 fragment memory. causes current position 1 int ahead. meaning, switch case stands on case 0 instance , shows specific picture, text gets updated case 1. cant work because of that. doing wrong??
thank
if able determine text based on current fragment position can use viewpager.onpagechangelistener. in activity implement interface , use calling mviewpager.setonpagechangelistener(someonpagechangelistener). determine text put textview onpagechangelistener.onpageselected() method.
unfortunately there bug in sdk , onpageselected() not called page @ position 0 when shown first time. can find workaround under above link, use viewpager.setcurrentpage(1) or set text position manually in oncreate() method.
example code:
//activity oncreate() protected void oncreate(bundle savedinstancestate) { ... mtextview = (textview) findviewbyid(r.id.text_view); mviewpager = (viewpager) findviewbyid(r.id.pager); mviewpager.setadapter(mpageradapter); mviewpager.setonpagechangelistener(new viewpager.simpleonpagechangelistener() { @override public void onpageselected(int position) { string sometext = determinetext(position) mtextview.settext(sometext); }); //because onpageselected not called page 0 first time string sometext = determinetext(0) mtextview.settext(sometext); } private string determinetext(int position){ //static? //switch? }
Comments
Post a Comment