Friday, 15 July 2011

Tryiing to add swiping navigation tabs in android -



Tryiing to add swiping navigation tabs in android -

i next guide create swipe navigation tabs using fragments doesnt work tablistener teh illustration doesnt specify how set in given example.

i know can manually set creating tab objects manually using actionbar.addtab() because using viewpager , pageadaper, how add together tabs automatically amount of items in pageadaper?

here page adapter code:

public class apppageadapter extends fragmentstatepageradapter { private list<fragment> fragmentslist = new arraylist<fragment>(); public apppageadapter(fragmentmanager fm, list<fragment> list) { super(fm); fragmentslist = list; } @override public fragment getitem(int position) { homecoming fragmentslist.get(position); } @override public int getcount() { homecoming fragmentslist.size(); } @override public charsequence getpagetitle(int position) { homecoming "fragment " + position; }

here activity:

public class mainactivity extends actionbaractivity { private viewpager mviewpager; private list<fragment> fragmentslist = new arraylist<fragment>(); @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); //setup fragments fragmentslist.add(new applistfragment()); fragmentslist.add(new applistfragment()); fragmentslist.add(new applistfragment()); fragmentslist.add(new applistfragment()); fragmenttransaction ft = getsupportfragmentmanager().begintransaction(); //set adapter , viewpager objects apppageadapter pageadapter = new apppageadapter(getsupportfragmentmanager(), fragmentslist); mviewpager = (viewpager) findviewbyid(r.id.pager); mviewpager.setadapter(pageadapter); mviewpager.setonpagechangelistener(new viewpager.onpagechangelistener() { @override public void onpagescrolled(int position, float positionoffset, int positionoffsetpixels) { } @override public void onpageselected(int position) { getsupportactionbar().setselectednavigationitem(position); } @override public void onpagescrollstatechanged(int state) { } }); setupactionbartabs(); // fragmenttransaction ft = getfragmentmanager().begintransaction(); // ft.add(r.id.mainlayout, new applistfragment()); // ft.commit(); } private void setupactionbartabs() { final actionbar actionbar = getsupportactionbar(); actionbar.setnavigationmode(actionbar.navigation_mode_tabs); actionbar.tablistener tablistener = new actionbar.tablistener() { @override public void ontabselected(actionbar.tab tab, fragmenttransaction fragmenttransaction) { mviewpager.setcurrentitem(tab.getposition()); } @override public void ontabunselected(actionbar.tab tab, fragmenttransaction fragmenttransaction) { } @override public void ontabreselected(actionbar.tab tab, fragmenttransaction fragmenttransaction) { } }; } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.main, menu); homecoming true; } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); if (id == r.id.action_settings) { homecoming true; } homecoming super.onoptionsitemselected(item); } }

here illustration following:

http://developer.android.com/training/implementing-navigation/lateral.html

i error when executing teh current code base:

ava.lang.indexoutofboundsexception: invalid index 1, size 0 @ java.util.arraylist.throwindexoutofboundsexception(arraylist.java:255) @ java.util.arraylist.get(arraylist.java:308) @ com.android.internal.app.actionbarimpl.setselectednavigationitem(actionbarimpl.java:363) @ android.support.v7.app.actionbarimplics.setselectednavigationitem(actionbarimplics.java:124) @ android.support.v7.app.actionbarimpljb.setselectednavigationitem(actionbarimpljb.java:20) @ com.example.myapplication.app.mainactivity$1.onpageselected(mainactivity.java:50) @ android.support.v4.view.viewpager.scrolltoitem(viewpager.java:567) @ android.support.v4.view.viewpager.setcurrentiteminternal(viewpager.java:551) @ android.support.v4.view.viewpager.ontouchevent(viewpager.java:2015) @ android.view.view.dispatchtouchevent(view.java:7706) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2210) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1945) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2216) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1959) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2216) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1959) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2216) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1959) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2216) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1959) @ com.android.internal.policy.impl.phonewindow$decorview.superdispatchtouchevent(phonewindow.java:2068) @ com.android.internal.policy.impl.phonewindow.superdispatchtouchevent(phonewindow.java:1515) @ android.app.activity.dispatchtouchevent(activity.java:2458) @ android.support.v7.app.actionbaractivitydelegateics$windowcallbackwrapper.dispatchtouchevent(actionbaractivitydelegateics.java:268) @ com.android.internal.policy.impl.phonewindow$decorview.dispatchtouchevent(phonewindow.java:2016) @ android.view.view.dispatchpointerevent(view.java:7886) @ android.view.viewrootimpl$viewpostimeinputstage.processpointerevent(viewrootimpl.java:3947) @ android.view.viewrootimpl$viewpostimeinputstage.onprocess(viewrootimpl.java:3826) @ android.view.viewrootimpl$inputstage.deliver(viewrootimpl.java:3392) @ android.view.viewrootimpl$inputstage.ondelivertonext(viewrootimpl.java:3442) @ android.view.viewrootimpl$inputstage.forward(viewrootimpl.java:3411) @ android.view.viewrootimpl$asyncinputstage.forward(viewrootimpl.java:3518) @ android.view.viewrootimpl$inputstage.apply(viewrootimpl.java:3419) @ android.view.viewrootimpl$asyncinputstage.apply(viewrootimpl.java:3575) @ android.view.viewrootimpl$inputstage.deliver(viewrootimpl.java:3392) @ android.view.viewrootimpl$inputstage.ondelivertonext(viewrootimpl.java:3442) @ android.view.viewrootimpl$inputstage.forward(viewrootimpl.java:3411) @ android.view.viewrootimpl$inputstage.apply(viewrootimpl.java:3419) @ android.view.viewrootimpl$inputstage.deliver(viewrootimpl.java:3392) @ android.view.viewrootimpl.deliverinputevent(viewrootimpl.java:5532) @ android.view.viewrootimpl.doprocessinputevents(viewrootimpl.java:5512) @ android.view.viewrootimpl.enqueueinputevent(viewrootimpl.java:5483) @ android.view.viewrootimpl$windowinputeventreceiver.oninputevent(viewrootimpl.java:5612) @ android.view.inputeventreceiver.dispatchinputevent(inputeventreceiver.java:185) @ android.os.messagequeue.nativepollonce(native method) @ android.os.messagequeue.next(messagequeue.java:138) @ android.os.looper.loop(looper.java:123) @ android.app.activitythread.main(activitythread.java:5001) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:515) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:785) @ com.android.internal.os.zygoteinit.main(zygo

android android-fragments tabs

No comments:

Post a Comment