android - setContentView causes NullPointerException -
i/m having nullpointerexception , believe problem related setcontentview in oncreate method.
here main activity :
protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); } and code add text textview .. code written in view :
public boolean ontouchevent(motionevent event) { // pointer index event object int pointerindex = event.getactionindex(); // pointer id int pointerid = event.getpointerid(pointerindex); // masked (not specific pointer) action int maskedaction = event.getactionmasked(); switch (maskedaction) { case motionevent.action_down: case motionevent.action_pointer_down: { // have new pointer. lets add list of pointers pointf f = new pointf(); f.x = event.getx(pointerindex); f.y = event.gety(pointerindex); mactivepointers.put(pointerid, f); break; } case motionevent.action_move: { // pointer moved (int size = event.getpointercount(), = 0; < size; i++) { pointf point = mactivepointers.get(event.getpointerid(i)); if (point != null) { point.x = event.getx(i); point.y = event.gety(i); } } break; } case motionevent.action_up: string schema = getletterschema(); string letter = getletter(schema); if(letter == null) { system.out.println("***************************"); system.out.println("****error***"+schema+"***"); system.out.println("***************************"); } else { textview t=(textview)findviewbyid(r.id.textview); t.settext(letter); system.out.println("***************************"); system.out.println("*"+letter+"*"); system.out.println("****************"+schema+"****"); } mactivepointers.clear(); break; case motionevent.action_pointer_up: // not use break; case motionevent.action_cancel: { // not use mactivepointers.clear(); break; } } ; invalidate(); return true; } here log :
09-09 18:01:47.221: i/(29842): platform version : jb-mr-2 09-09 18:01:47.246: d/mali_winsys(29842): new_window_surface returns 0x3000 09-09 18:01:47.321: d/openglrenderer(29842): enabling debug mode 0 09-09 18:01:50.546: e/inputeventreceiver(29842): exception dispatching input event. 09-09 18:01:50.551: e/messagequeue-jni(29842): exception in messagequeue callback: handlereceivecallback 09-09 18:01:50.556: e/messagequeue-jni(29842): java.lang.nullpointerexception 09-09 18:01:50.556: e/messagequeue-jni(29842): @ com.example.multitouch.multitouchview.ontouchevent(multitouchview.java:127) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.view.dispatchtouchevent(view.java:8112) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2420) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2153) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2420) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2153) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2420) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2153) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2420) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2153) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ com.android.internal.policy.impl.phonewindow$decorview.superdispatchtouchevent(phonewindow.java:2252) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ com.android.internal.policy.impl.phonewindow.superdispatchtouchevent(phonewindow.java:1587) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.app.activity.dispatchtouchevent(activity.java:2507) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ com.android.internal.policy.impl.phonewindow$decorview.dispatchtouchevent(phonewindow.java:2200) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.view.dispatchpointerevent(view.java:8320) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl$viewpostimeinputstage.processpointerevent(viewrootimpl.java:4558) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl$viewpostimeinputstage.onprocess(viewrootimpl.java:4430) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl$inputstage.deliver(viewrootimpl.java:3988) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl$inputstage.ondelivertonext(viewrootimpl.java:4042) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl$inputstage.forward(viewrootimpl.java:4011) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl$asyncinputstage.forward(viewrootimpl.java:4122) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl$inputstage.apply(viewrootimpl.java:4019) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl$asyncinputstage.apply(viewrootimpl.java:4179) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl$inputstage.deliver(viewrootimpl.java:3988) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl$inputstage.ondelivertonext(viewrootimpl.java:4042) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl$inputstage.forward(viewrootimpl.java:4011) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl$inputstage.apply(viewrootimpl.java:4019) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl$inputstage.deliver(viewrootimpl.java:3988) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl.deliverinputevent(viewrootimpl.java:6333) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl.doprocessinputevents(viewrootimpl.java:6249) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl.enqueueinputevent(viewrootimpl.java:6220) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl.enqueueinputevent(viewrootimpl.java:6185) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.viewrootimpl$windowinputeventreceiver.oninputevent(viewrootimpl.java:6413) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.view.inputeventreceiver.dispatchinputevent(inputeventreceiver.java:185) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.os.messagequeue.nativepollonce(native method) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.os.messagequeue.next(messagequeue.java:138) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.os.looper.loop(looper.java:123) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ android.app.activitythread.main(activitythread.java:5335) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ java.lang.reflect.method.invokenative(native method) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ java.lang.reflect.method.invoke(method.java:515) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1265) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1081) 09-09 18:01:50.556: e/messagequeue-jni(29842): @ dalvik.system.nativestart.main(native method) 09-09 18:01:50.556: d/androidruntime(29842): shutting down vm 09-09 18:01:50.556: w/dalvikvm(29842): threadid=1: thread exiting uncaught exception (group=0x4175fc08) 09-09 18:01:50.571: e/androidruntime(29842): fatal exception: main 09-09 18:01:50.571: e/androidruntime(29842): process: com.example.multitouch, pid: 29842 09-09 18:01:50.571: e/androidruntime(29842): java.lang.nullpointerexception 09-09 18:01:50.571: e/androidruntime(29842): @ com.example.multitouch.multitouchview.ontouchevent(multitouchview.java:127) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.view.dispatchtouchevent(view.java:8112) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2420) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2153) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2420) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2153) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2420) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2153) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:2420) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:2153) 09-09 18:01:50.571: e/androidruntime(29842): @ com.android.internal.policy.impl.phonewindow$decorview.superdispatchtouchevent(phonewindow.java:2252) 09-09 18:01:50.571: e/androidruntime(29842): @ com.android.internal.policy.impl.phonewindow.superdispatchtouchevent(phonewindow.java:1587) 09-09 18:01:50.571: e/androidruntime(29842): @ android.app.activity.dispatchtouchevent(activity.java:2507) 09-09 18:01:50.571: e/androidruntime(29842): @ com.android.internal.policy.impl.phonewindow$decorview.dispatchtouchevent(phonewindow.java:2200) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.view.dispatchpointerevent(view.java:8320) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl$viewpostimeinputstage.processpointerevent(viewrootimpl.java:4558) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl$viewpostimeinputstage.onprocess(viewrootimpl.java:4430) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl$inputstage.deliver(viewrootimpl.java:3988) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl$inputstage.ondelivertonext(viewrootimpl.java:4042) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl$inputstage.forward(viewrootimpl.java:4011) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl$asyncinputstage.forward(viewrootimpl.java:4122) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl$inputstage.apply(viewrootimpl.java:4019) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl$asyncinputstage.apply(viewrootimpl.java:4179) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl$inputstage.deliver(viewrootimpl.java:3988) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl$inputstage.ondelivertonext(viewrootimpl.java:4042) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl$inputstage.forward(viewrootimpl.java:4011) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl$inputstage.apply(viewrootimpl.java:4019) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl$inputstage.deliver(viewrootimpl.java:3988) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl.deliverinputevent(viewrootimpl.java:6333) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl.doprocessinputevents(viewrootimpl.java:6249) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl.enqueueinputevent(viewrootimpl.java:6220) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl.enqueueinputevent(viewrootimpl.java:6185) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.viewrootimpl$windowinputeventreceiver.oninputevent(viewrootimpl.java:6413) 09-09 18:01:50.571: e/androidruntime(29842): @ android.view.inputeventreceiver.dispatchinputevent(inputeventreceiver.java:185) 09-09 18:01:50.571: e/androidruntime(29842): @ android.os.messagequeue.nativepollonce(native method) 09-09 18:01:50.571: e/androidruntime(29842): @ android.os.messagequeue.next(messagequeue.java:138) 09-09 18:01:50.571: e/androidruntime(29842): @ android.os.looper.loop(looper.java:123) 09-09 18:01:50.571: e/androidruntime(29842): @ android.app.activitythread.main(activitythread.java:5335) 09-09 18:01:50.571: e/androidruntime(29842): @ java.lang.reflect.method.invokenative(native method) 09-09 18:01:50.571: e/androidruntime(29842): @ java.lang.reflect.method.invoke(method.java:515) 09-09 18:01:50.571: e/androidruntime(29842): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1265) 09-09 18:01:50.571: e/androidruntime(29842): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:1081) 09-09 18:01:50.571: e/androidruntime(29842): @ dalvik.system.nativestart.main(native method) 09-09 18:01:53.381: i/process(29842): sending signal. pid: 29842 sig: 9 line 127 : t.settext(letter);
here main activity :
public class mainactivity extends activity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.main, menu); return true; } }
your assumption wrong. has nothing setcontentview(), rather findviewbyid call. state code another view, means code within class extends view. view has findviewbyid() method. below documentation
look child view given id. if view has given id, return view.
parameters:
id id search for.
returns:
view has given id in hierarchy or null
and guess r.id.textview not child of another view.
you want call findviewbyid() on context, example calling getcontext().findviewbyid(r.id.textview). hope helps.
Comments
Post a Comment