Thursday 15 May 2014

android - Subscriber class ...TaskAdapter has no public methods called onEvent -



android - Subscriber class ...TaskAdapter has no public methods called onEvent -

i having problem eventbus. particularly when trying run application gives me error

10-16 22:59:38.277: e/androidruntime(1175): caused by: de.greenrobot.event. eventbusexception: subscriber class com.example.listtame.ui.taskadapter has no public methods called onevent

it have such public method listed below. know why eventbus throw exception?

thanks!

package com.example.listtame.ui; import java.util.collections; import java.util.list; import com.example.listtame.r; import com.example.listtame.activities.tasklist; import com.example.listtame.customobj.task; import com.example.listtame.events.tasklistfetchedevent; import de.greenrobot.event.eventbus; import android.content.context; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.imageview; import android.widget.textview; public class taskadapter extends baseadapter { private list<task> tasks = collections.emptylist(); private final context context; public taskadapter(context context) { this.context = context; eventbus.getdefault().register(this); } public void oneventmainthread(tasklistfetchedevent e) { this.tasks = tasklistfetchedevent.mtasklist; notifydatasetchanged(); } private static class viewholder { public final imageview task_image; public final textview task_text; public viewholder(imageview task_image, textview task_text) { this.task_image = task_image; this.task_text = task_text; } } public void updatetasks(list<task> tasks) { this.tasks = tasks; notifydatasetchanged(); } @override public int getcount() { homecoming tasks.size(); } @override public task getitem(int position) { homecoming tasks.get(position); } @override public long getitemid(int position) { homecoming position; } @override public view getview(int position, view convertview, viewgroup parent) { // todo auto-generated method stub imageview task_image; textview task_text; if (convertview == null) { convertview = layoutinflater.from(context) .inflate(r.layout.task_box, parent, false); task_image = (imageview) convertview.findviewbyid(r.id.task_icon); task_text = (textview) convertview.findviewbyid(r.id.task_text); convertview.settag(new viewholder(task_image, task_text)); } else { viewholder viewholder = (viewholder) convertview.gettag(); task_image = viewholder.task_image; task_text = viewholder.task_text; } task task = getitem(position); task_text.settext(task.gettext()); task_image.setimageresource(r.drawable.ic_debug); homecoming convertview; } }

i have tried changing oneventmainthread method onevent. etiher way same exception. total logcat posted below in case curious.

10-16 22:59:38.261: d/androidruntime(1175): shutting downwards vm 10-16 22:59:38.261: w/dalvikvm(1175): threadid=1: thread exiting uncaught exception (group=0xa62bb288) 10-16 22:59:38.277: d/dalvikvm(1175): gc_concurrent freed 264k, 4% free 10863k/11207k, paused 12ms+1ms, total 16ms 10-16 22:59:38.277: e/androidruntime(1175): fatal exception: main 10-16 22:59:38.277: e/androidruntime(1175): java.lang.runtimeexception: unable start activity componentinfo{com.example.listtame/com.example.listtame.activities.mainverticalactivity}: android.view.inflateexception: binary xml file line #58: error inflating class fragment 10-16 22:59:38.277: e/androidruntime(1175): @ android.app.activitythread.performlaunchactivity(activitythread.java:2059) 10-16 22:59:38.277: e/androidruntime(1175): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2084) 10-16 22:59:38.277: e/androidruntime(1175): @ android.app.activitythread.access$600(activitythread.java:130) 10-16 22:59:38.277: e/androidruntime(1175): @ android.app.activitythread$h.handlemessage(activitythread.java:1195) 10-16 22:59:38.277: e/androidruntime(1175): @ android.os.handler.dispatchmessage(handler.java:99) 10-16 22:59:38.277: e/androidruntime(1175): @ android.os.looper.loop(looper.java:137) 10-16 22:59:38.277: e/androidruntime(1175): @ android.app.activitythread.main(activitythread.java:4745) 10-16 22:59:38.277: e/androidruntime(1175): @ java.lang.reflect.method.invokenative(native method) 10-16 22:59:38.277: e/androidruntime(1175): @ java.lang.reflect.method.invoke(method.java:511) 10-16 22:59:38.277: e/androidruntime(1175): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:786) 10-16 22:59:38.277: e/androidruntime(1175): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:553) 10-16 22:59:38.277: e/androidruntime(1175): @ dalvik.system.nativestart.main(native method) 10-16 22:59:38.277: e/androidruntime(1175): caused by: android.view.inflateexception: binary xml file line #58: error inflating class fragment 10-16 22:59:38.277: e/androidruntime(1175): @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:704) 10-16 22:59:38.277: e/androidruntime(1175): @ android.view.layoutinflater.rinflate(layoutinflater.java:746) 10-16 22:59:38.277: e/androidruntime(1175): @ android.view.layoutinflater.inflate(layoutinflater.java:489) 10-16 22:59:38.277: e/androidruntime(1175): @ android.view.layoutinflater.inflate(layoutinflater.java:396) 10-16 22:59:38.277: e/androidruntime(1175): @ android.view.layoutinflater.inflate(layoutinflater.java:352) 10-16 22:59:38.277: e/androidruntime(1175): @ com.android.internal.policy.impl.phonewindow.setcontentview(phonewindow.java:256) 10-16 22:59:38.277: e/androidruntime(1175): @ android.app.activity.setcontentview(activity.java:1867) 10-16 22:59:38.277: e/androidruntime(1175): @ android.support.v7.app.actionbaractivity.supersetcontentview(actionbaractivity.java:217) 10-16 22:59:38.277: e/androidruntime(1175): @ android.support.v7.app.actionbaractivitydelegateics.setcontentview(actionbaractivitydelegateics.java:110) 10-16 22:59:38.277: e/androidruntime(1175): @ android.support.v7.app.actionbaractivity.setcontentview(actionbaractivity.java:77) 10-16 22:59:38.277: e/androidruntime(1175): @ com.example.listtame.activities.mainverticalactivity.oncreate(mainverticalactivity.java:67) 10-16 22:59:38.277: e/androidruntime(1175): @ android.app.activity.performcreate(activity.java:5008) 10-16 22:59:38.277: e/androidruntime(1175): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1079) 10-16 22:59:38.277: e/androidruntime(1175): @ android.app.activitythread.performlaunchactivity(activitythread.java:2023) 10-16 22:59:38.277: e/androidruntime(1175): ... 11 more 10-16 22:59:38.277: e/androidruntime(1175): caused by: de.greenrobot.event.eventbusexception: subscriber class com.example.listtame.ui.taskadapter has no public methods called onevent 10-16 22:59:38.277: e/androidruntime(1175): @ de.greenrobot.event.subscribermethodfinder.findsubscribermethods(subscribermethodfinder.java:99) 10-16 22:59:38.277: e/androidruntime(1175): @ de.greenrobot.event.eventbus.register(eventbus.java:186) 10-16 22:59:38.277: e/androidruntime(1175): @ de.greenrobot.event.eventbus.register(eventbus.java:140) 10-16 22:59:38.277: e/androidruntime(1175): @ com.example.listtame.ui.taskadapter.<init>(taskadapter.java:33) 10-16 22:59:38.277: e/androidruntime(1175): @ com.example.listtame.activities.tasklist.oncreate(tasklist.java:42) 10-16 22:59:38.277: e/androidruntime(1175): @ android.support.v4.app.fragment.performcreate(fragment.java:1481) 10-16 22:59:38.277: e/androidruntime(1175): @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:908) 10-16 22:59:38.277: e/androidruntime(1175): @ android.support.v4.app.fragmentmanagerimpl.movetostate(fragmentmanager.java:1099) 10-16 22:59:38.277: e/androidruntime(1175): @ android.support.v4.app.fragmentmanagerimpl.addfragment(fragmentmanager.java:1201) 10-16 22:59:38.277: e/androidruntime(1175): @ android.support.v4.app.fragmentactivity.oncreateview(fragmentactivity.java:292) 10-16 22:59:38.277: e/androidruntime(1175): @ android.view.layoutinflater.createviewfromtag(layoutinflater.java:676) 10-16 22:59:38.277: e/androidruntime(1175): ... 24 more

edit***********************************

michael has posted solution below. onevent needs onevent not onevent.

after looking through greenrobot eventbus code on github, see want declare event callbacks "onevent" + optional modifier see doing.

however, starting method capital 'o'. rename method oneventmainthread , bet it'll work!

android events adapter greenrobot-eventbus

No comments:

Post a Comment