私のアプリケーションのメインスレッドから、TCPClientに送信される文字列メッセージを送信しようとしています。文字列メッセージをHandlerに送信中にエラーが発生しました:文字列をintに変換できません
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sender = new TCPClient("192.168.0.7",2016);
sender.start();
//some other code
Message msg = Message.obtain();
msg.arg1 = "some string"; //this line gives error
sender.handler.sendMessage(msg);
}
がどのように文字列を渡すことができます:私のメインスレッド上
public class TCPClient extends Thread
{
String ip;
int port;
PrintWriter out;
Handler handler;
TCPClient(String ip, int port)
{
this.ip = ip;
this.port = port;
try
{
Socket socket = new Socket(ip,port);
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
}catch (Exception e)
{
Log.d("OKLINUX","Exception while creating socket");
e.printStackTrace();
}
}
public void run()
{
Looper.prepare();
handler = new Handler(){
public void handleMessage(Message msg)
{
Log.d("OKLINUX","Data sent : "+msg.arg1);
out.println(msg.arg1);
out.flush();
}
};
Looper.loop();
}
}
:
これは私れるtcpClientのですか?
ここで、文字列を渡しますか? – Puneet
'public int arg1; 'はMessageのソースコードからの行です。 'arg1'と' arg2'は、いくつかの整数値を格納するだけでよいなら、setData()を使うより安価な方法です。つまり、変数arg1に文字列ではなく整数のみを格納することができます。 – Jimmy