Exception error: Android.view.viewrootimpl$calledfromwrongthreadexception:only The original thread that created a view hierarchy can touch its views.
WORKAROUND: Use handle to process messages from the thread.
Packagecom.example.net_simplenet;ImportJava.io.BufferedReader;Importjava.io.IOException;ImportJava.io.InputStreamReader;ImportJava.net.Socket;Importjava.net.UnknownHostException;Importandroid.app.Activity;ImportAndroid.os.Bundle;ImportAndroid.os.Handler;ImportAndroid.os.Message;ImportAndroid.view.View;ImportAndroid.view.View.OnClickListener;ImportAndroid.widget.Button;ImportAndroid.widget.TextView; Public classMainactivityextendsActivity {TextView show; Button btn; //handling the handler of thread messagesHandler Handler; //Message Type Final Static intMsg_type = 0x123; @Overrideprotected voidonCreate (Bundle savedinstancestate) {Super. OnCreate (savedinstancestate); Setcontentview (R.layout.activity_main); Show=(TextView) Findviewbyid (r.id.show); BTN=(Button) Findviewbyid (R.id.button1); Handler=NewHandler () {@Override Public voidhandlemessage (Message msg) {//TODO auto-generated Method Stub//super.handlemessage (msg); if(Msg.what = =Msg_type) {Show.settext (msg.obj.toString ()); } } }; Btn.setonclicklistener (NewOnclicklistener () {@Override Public voidOnClick (View v) {//TODO auto-generated Method Stub NewThread () {@Override Public voidrun () {Try{Socket Socket=NewSocket ("192.168.14.100", 30000); BufferedReader BR=NewBufferedReader (NewInputStreamReader (Socket.getinputstream ())); String Line=Br.readline (); Message msg=NewMessage (); Msg.what=Msg_type; Msg.obj=Line ; Handler.sendmessage (msg); Br.close (); Socket.close (); } Catch(unknownhostexception e) {//TODO auto-generated Catch blockE.printstacktrace (); } Catch(IOException e) {//TODO auto-generated Catch blockE.printstacktrace (); } }; }.start (); } }); }}
android-resolves an issue where threads outside the main thread cannot access interface components