java - Execute a method from a class in mainActivity (Android) -
i m trying execute method class called qrscann in mainactivity class when user click on button everytime app crash click button , gives me log crash output
06-02 17:00:24.890 7067-7084/t.n.app w/egl_emulation﹕ eglsurfaceattrib not implemented 06-02 17:00:24.890 7067-7084/t.n.app w/openglrenderer﹕ failed set egl_swap_behavior on surface 0xb3ee6da0, error=egl_success 06-02 17:00:27.473 7067-7067/t.n.app d/androidruntime﹕ shutting down vm 06-02 17:00:27.474 7067-7067/t.n.app e/androidruntime﹕ fatal exception: main process: snet.tuberlin.app, pid: 7067 java.lang.nullpointerexception: attempt invoke virtual method 'android.app.activitythread$applicationthread android.app.activitythread.getapplicationthread()' on null object reference @ android.app.activity.startactivityforresult(activity.java:3745) @ android.app.activity.startactivityforresult(activity.java:3706) @ snet.tuberlin.app.qrcode.scanqr(qrcode.java:23) @ snet.tuberlin.app.mainactivity.onclick(mainactivity.java:48) @ android.view.view.performclick(view.java:4780) @ android.view.view$performclick.run(view.java:19866) @ android.os.handler.handlecallback(handler.java:739) @ android.os.handler.dispatchmessage(handler.java:95) @ android.os.looper.loop(looper.java:135) @ android.app.activitythread.main(activitythread.java:5257) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:903) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:698)
and class has method(scanner) want execute :
public class qrscann extends activity { static final string action_scan = "com.google.zxing.client.android.scan"; public void scanner(view v) { try { intent intent = new intent(action_scan); intent.putextra("scan_mode", "qr_code_mode"); startactivityforresult(intent, 0); } catch (activitynotfoundexception anfe) { showdialog(qrscann.this, "no scanner found", "download scanner code activity?", "yes", "no").show(); } }
the class has other method well. , finelly have done in mainactivity class :
public class mainactivity extends activity implements view.onclicklistener { public button scanner; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); scanner =(button)findviewbyid(r.id.buttonscanqr); scanner.setonclicklistener(this); } @override public void onclick(view v) { //intent qrscann = new intent(this, qrscann.class); //startactivity(qrscann ); qrscann qrscanner =new qrscann(); qrscanner.scanner(v); } }
i appreciate explanation of may missing.
public class qrscann { static final string action_scan = "com.google.zxing.client.android.scan"; private mainactivity mcontext; public qrscann(mainactivity context) { mcontext = context; } public void scanner(view v) { try { intent intent = new intent(action_scan); intent.putextra("scan_mode", "qr_code_mode"); mcontext.startactivityforresult(intent, 0); } catch (activitynotfoundexception anfe) { //show dialog deprecated , try dialogfragments mcontext.showdialog(qrscann.this, "no scanner found", "download scanner code activity?", "yes", "no").show(); } }
from activity
@override public void onclick(view v) { qrscann qrscanner =new qrscann(this); qrscanner.scanner(v); }
Comments
Post a Comment