java - Action Bar Tab must have a Callback addTab error -
my problem in addtab() method, dont know how solve it.
this error log:
10-12 02:19:43.750: e/androidruntime(22899): fatal exception: main 10-12 02:19:43.750: e/androidruntime(22899): java.lang.runtimeexception: unable start activity componentinfo{yab.example.viewpager1/yab.example.viewpager1.mainactivity}: java.lang.illegalstateexception: action bar tab must have callback 10-12 02:19:43.750: e/androidruntime(22899): @ android.app.activitythread.performlaunchactivity(activitythread.java:2121) 10-12 02:19:43.750: e/androidruntime(22899): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2146) 10-12 02:19:43.750: e/androidruntime(22899): @ android.app.activitythread.access$700(activitythread.java:140) 10-12 02:19:43.750: e/androidruntime(22899): @ android.app.activitythread$h.handlemessage(activitythread.java:1238) 10-12 02:19:43.750: e/androidruntime(22899): @ android.os.handler.dispatchmessage(handler.java:99) 10-12 02:19:43.750: e/androidruntime(22899): @ android.os.looper.loop(looper.java:137) 10-12 02:19:43.750: e/androidruntime(22899): @ android.app.activitythread.main(activitythread.java:4944) 10-12 02:19:43.750: e/androidruntime(22899): @ java.lang.reflect.method.invokenative(native method) 10-12 02:19:43.750: e/androidruntime(22899): @ java.lang.reflect.method.invoke(method.java:511) 10-12 02:19:43.750: e/androidruntime(22899): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1038) 10-12 02:19:43.750: e/androidruntime(22899): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:805) 10-12 02:19:43.750: e/androidruntime(22899): @ dalvik.system.nativestart.main(native method) 10-12 02:19:43.750: e/androidruntime(22899): caused by: java.lang.illegalstateexception: action bar tab must have callback 10-12 02:19:43.750: e/androidruntime(22899): @ com.android.internal.app.actionbarimpl.configuretab(actionbarimpl.java:488) 10-12 02:19:43.750: e/androidruntime(22899): @ com.android.internal.app.actionbarimpl.addtab(actionbarimpl.java:514) 10-12 02:19:43.750: e/androidruntime(22899): @ com.android.internal.app.actionbarimpl.addtab(actionbarimpl.java:502) 10-12 02:19:43.750: e/androidruntime(22899): @ yab.example.viewpager1.mainactivity.oncreate(mainactivity.java:39) 10-12 02:19:43.750: e/androidruntime(22899): @ android.app.activity.performcreate(activity.java:5188) 10-12 02:19:43.750: e/androidruntime(22899): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1094) 10-12 02:19:43.750: e/androidruntime(22899): @ android.app.activitythread.performlaunchactivity(activitythread.java:2085) 10-12 02:19:43.750: e/androidruntime(22899): ... 11 more
here's code:
package com.example.viewpager3; import android.os.bundle; import android.support.v4.app.fragmenttransaction; import android.support.v4.view.viewpager; import android.support.v7.app.actionbar; import android.support.v7.app.actionbar.tab; import android.support.v7.app.actionbaractivity; import android.util.log; import android.view.menu; import android.view.menuitem; import android.widget.toast; public class mainactivity extends actionbaractivity implements actionbar.tablistener { private viewpageradapter msectionspageradapter; private viewpager mviewpager; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); final actionbar actionbar = getsupportactionbar(); actionbar.setnavigationmode(actionbar.navigation_mode_tabs); msectionspageradapter = new viewpageradapter(getsupportfragmentmanager()); mviewpager = (viewpager) findviewbyid(r.id.viewpager); mviewpager.setadapter(msectionspageradapter); actionbar.addtab(actionbar.newtab().settext(r.string.hello_world)); // (int = 0; < msectionspageradapter.getcount(); i++) { // toast.maketext(this, "hello "+i, toast.length_short).show(); // //actionbar.addtab(actionbar.newtab().settext(msectionspageradapter.getpagetitle(i))); // } // mviewpager.setonpagechangelistener(new // viewpager.simpleonpagechangelistener() { // @override // public void onpageselected(int position) { // log.i("test de problème", "problème"); // actionbar.setselectednavigationitem(position); // log.i("test de problème", "no problème"); // // } // }); } @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); } @override public void ontabreselected(tab arg0, fragmenttransaction arg1) { // todo auto-generated method stub } @override public void ontabselected(tab tab, fragmenttransaction arg1) { // todo auto-generated method stub mviewpager.setcurrentitem(tab.getposition()); } @override public void ontabunselected(tab arg0, fragmenttransaction arg1) { // todo auto-generated method stub } }
you haven't set listener.
use this:
actionbar.tab tab = actionbar.newtab(); tab.settext(r.string.hello_world); tab.settablistener(this) actionbar.addtab(tab);
java android
No comments:
Post a Comment