java - web view error loading on activity -
this code
package com.javacodegeeks.androidqrcodeexample; import android.app.activity; import android.app.alertdialog; import android.content.activitynotfoundexception; import android.content.dialoginterface; import android.content.intent; import android.net.uri; import android.os.bundle; import android.util.log; import android.view.view; import android.webkit.webview; import android.webkit.webviewclient; import android.widget.toast; public class androidbarcodeqrexample extends activity { /** called when activity first created. */ static final string action_scan = "com.google.zxing.client.android.scan"; string disco = null; string qrcode_result = null; webview webview; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); webview = (webview) findviewbyid(r.id.webview); setcontentview(r.layout.activity_main); //prendo il nome utente dalla precedente scheda bundle extras = getintent().getextras(); if (extras != null) { disco = extras.getstring("disco"); } } public void scanqr(view v) { try { intent intent = new intent(action_scan); intent.putextra("scan_mode", "qr_code_mode"); startactivityforresult(intent, 0); } catch (activitynotfoundexception anfe) { showdialog(androidbarcodeqrexample.this, "nessuno scanner trovato", "scarica subito uno scanner", "si", "no").show(); } } private static alertdialog showdialog(final activity act, charsequence title, charsequence message, charsequence buttonyes, charsequence buttonno) { alertdialog.builder downloaddialog = new alertdialog.builder(act); downloaddialog.settitle(title); downloaddialog.setmessage(message); downloaddialog.setpositivebutton(buttonyes, new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialoginterface, int i) { uri uri = uri.parse("market://search?q=pname:" + "com.google.zxing.client.android"); intent intent = new intent(intent.action_view, uri); try { act.startactivity(intent); } catch (activitynotfoundexception anfe) { } } }); downloaddialog.setnegativebutton(buttonno, new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialoginterface, int i) { } }); return downloaddialog.show(); } public void onactivityresult(int requestcode, int resultcode, intent intent) { if (requestcode == 0) { if (resultcode == result_ok) { string contents = intent.getstringextra("scan_result"); string format = intent.getstringextra("scan_result_format"); qrcode_result = contents; //prendo il primo numero char check = qrcode_result.charat(0); if (check == '0') { string url = "http://www.bparty.org/app/localsite/connect_android_qr.php?disco=" + disco + "&string=" + qrcode_result; url = url.replace(" ", "%20"); log.i("url",url); webview.loadurl(url); //allora e' un codice univoco lista qrcode_result = "qrcode per lista"; } else if (check == '1') { // allora e' un codice di ticket comprato qrcode_result = "qrcode per ticket"; } else { //allora non esiste qrcode_result = "qrcode non valido"; } toast toast = toast.maketext(this, "content:" + qrcode_result, toast.length_long); toast.show(); } } } }
when run app after qrcode scan have error :
06-15 03:43:27.809 11140-11140/com.javacodegeeks.androidqrcodeexample e/androidruntime﹕ fatal exception: main java.lang.runtimeexception: failure delivering result resultinfo{who=null, request=0, result=-1, data=intent { act=com.google.zxing.client.android.scan flg=0x80000 (has extras) }} activity {com.javacodegeeks.androidqrcodeexample/com.javacodegeeks.androidqrcodeexample.androidbarcodeqrexample}: java.lang.nullpointerexception
i think it's web view not initialized well.. isn't it?
inside oncreate()
method, move webview
initialization after setcontentview
@override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); webview = (webview) findviewbyid(r.id.webview); ..... }
Comments
Post a Comment