lv.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> arg0, view v, int p,long arg3) { showpopup(users[p],ids[p]); } }); public void showpopup(string username,final string toid){ alertdialog.builder builder = new alertdialog.builder(this); builder.settitle("challenge"); builder.setmessage("do want challenge "+username+"..??"); builder.setnegativebutton("yes", new onclicklistener() { @override public void onclick(dialoginterface dialog, int which) { // todo auto-generated method stub string npath = cpath+toid; httpget = new httpget(npath); log.d("challenge path" ,npath+""); try { httpresponse response = client.execute(get); log.d("execution result " ,response.getstatusline().getstatuscode()+""); if(response.getstatusline().getstatuscode() == 200) { httpentity entity = response.getentity(); string data = entityutils.tostring(entity); jsonarray jarray = new jsonarray(data); jsonobject jobj = new jsonobject(); jobj = jarray.getjsonobject(0); string error = jobj.getstring("errormsg"); log.d("challenge response", data); if(error.equalsignorecase("false")) { toast.maketext(getapplicationcontext(), "challenge has started. play turn", toast.length_long).show(); intent intent = new intent(getapplicationcontext(), dicestwocolumn.class); intent.putextra("fromid", loginscreen.uid); intent.putextra("toid", toid); string sql = "insert tbl_localgame (from_id,to_id,status) values ('"+loginscreen.uid+"','"+toid+"','active')"; db.execsql(sql); startactivity(intent); } else toast.maketext(getapplicationcontext(), "you sent challenge user", toast.length_long).show(); } else toast.maketext(getapplicationcontext(), "network error", toast.length_long).show(); } catch (clientprotocolexception e) { // todo auto-generated catch block e.printstacktrace(); } catch (ioexception e) { // todo auto-generated catch block e.printstacktrace(); } catch (jsonexception e) { // todo auto-generated catch block e.printstacktrace(); } } }); builder.setpositivebutton("no", null); builder.show(); } this logcat results
05-06 10:39:57.622: d/challenge path(875): http://www.base29.com/base3/yatzy/challengeuser.php?fromid=7&toid=1 05-06 10:39:57.671: d/androidruntime(875): shutting down vm 05-06 10:39:57.671: w/dalvikvm(875): threadid=1: thread exiting uncaught exception (group=0x40a13300) 05-06 10:39:57.802: e/androidruntime(875): fatal exception: main 05-06 10:39:57.802: e/androidruntime(875): android.os.networkonmainthreadexception 05-06 10:39:57.802: e/androidruntime(875): @ android.os.strictmode$androidblockguardpolicy.onnetwork(strictmode.java:1117) 05-06 10:39:57.802: e/androidruntime(875): @ libcore.io.blockguardos.recvfrom(blockguardos.java:163) 05-06 10:39:57.802: e/androidruntime(875): @ libcore.io.iobridge.recvfrom(iobridge.java:513) 05-06 10:39:57.802: e/androidruntime(875): @ java.net.plainsocketimpl.read(plainsocketimpl.java:488) 05-06 10:39:57.802: e/androidruntime(875): @ java.net.plainsocketimpl.access$000(plainsocketimpl.java:46) 05-06 10:39:57.802: e/androidruntime(875): @ java.net.plainsocketimpl$plainsocketinputstream.read(plainsocketimpl.java:240) 05-06 10:39:57.802: e/androidruntime(875): @ org.apache.http.impl.io.abstractsessioninputbuffer.fillbuffer(abstractsessioninputbuffer.java:103) 05-06 10:39:57.802: e/androidruntime(875): @ org.apache.http.impl.io.socketinputbuffer.isstale(socketinputbuffer.java:109) 05-06 10:39:57.802: e/androidruntime(875): @ org.apache.http.impl.abstracthttpclientconnection.isstale(abstracthttpclientconnection.java:205) 05-06 10:39:57.802: e/androidruntime(875): @ org.apache.http.impl.conn.abstractclientconnadapter.isstale(abstractclientconnadapter.java:185) 05-06 10:39:57.802: e/androidruntime(875): @ org.apache.http.impl.client.defaultrequestdirector.execute(defaultrequestdirector.java:336) 05-06 10:39:57.802: e/androidruntime(875): @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:555) 05-06 10:39:57.802: e/androidruntime(875): @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:487) 05-06 10:39:57.802: e/androidruntime(875): @ org.apache.http.impl.client.abstracthttpclient.execute(abstracthttpclient.java:465) 05-06 10:39:57.802: e/androidruntime(875): @ com.base29.flipit.gameplayerslist$2.onclick(gameplayerslist.java:86) 05-06 10:39:57.802: e/androidruntime(875): @ com.android.internal.app.alertcontroller$buttonhandler.handlemessage(alertcontroller.java:166) 05-06 10:39:57.802: e/androidruntime(875): @ android.os.handler.dispatchmessage(handler.java:99) 05-06 10:39:57.802: e/androidruntime(875): @ android.os.looper.loop(looper.java:137) 05-06 10:39:57.802: e/androidruntime(875): @ android.app.activitythread.main(activitythread.java:4745) 05-06 10:39:57.802: e/androidruntime(875): @ java.lang.reflect.method.invokenative(native method) 05-06 10:39:57.802: e/androidruntime(875): @ java.lang.reflect.method.invoke(method.java:511) 05-06 10:39:57.802: e/androidruntime(875): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:786) 05-06 10:39:57.802: e/androidruntime(875): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:553) 05-06 10:39:57.802: e/androidruntime(875): @ dalvik.system.nativestart.main(native method) it not goes try{ } body . on logcat show log.d("challenge path" ,npath+""); getting force close error. works on gingerbread emulator works on ice-cream-sandwitch
you can not perform networking operation on main thread. reason must use handler or asynctask.
Comments
Post a Comment