public void onClick(View v){
switch(v.getId()){
case R.id.btn_lj://"连接服务器”按钮
ur1= et_ip.getText().toString().trim();//获取文本信息.转换成字符串.去掉字符串首尾空格
text=et_port.getText().toString().trim(); if (TextUtils.isEmpty(ur1)) {
Toast.makeText(this,"Ip地址不能为空",Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(text)){
Toast.makeText(this,"端口不能为空",Toast.LENGTH_SHORT).show();
return;
}
if(socket != null && socket.isConnected()){//以此为条件判断,实现连接成功后再点击按钮断开socket连接
try{
socket.close();
socket=null; // 清空mSocket
s_lj.setText("连接");
Toast.makeText(MainActivity.this,"连接已关闭",Toast.LENGTH_LONG).show();
}
catch (IOException e){
e.printStackTrace();
}
} dk=Integer.parseInt(text);//将字符串“text”转换成整数型
str="";
new ServerThreadTCP().start();
break;
这个程序可以运行,实际接线能控制风扇运转。我的思路是点击“连接服务器”按钮后APP与ESP8266模块建立socket连接,按钮文本变成“断开”(用到handler已实现),在点击这个按钮时就断开与esp8266的socket连接。但是现在问题是连接ok,文本改变ok,就是点解按钮想断开连接时闪退,大神们帮我分析分析,万分感谢!
switch(v.getId()){
case R.id.btn_lj://"连接服务器”按钮
ur1= et_ip.getText().toString().trim();//获取文本信息.转换成字符串.去掉字符串首尾空格
text=et_port.getText().toString().trim(); if (TextUtils.isEmpty(ur1)) {
Toast.makeText(this,"Ip地址不能为空",Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(text)){
Toast.makeText(this,"端口不能为空",Toast.LENGTH_SHORT).show();
return;
}
if(socket != null && socket.isConnected()){//以此为条件判断,实现连接成功后再点击按钮断开socket连接
try{
socket.close();
socket=null; // 清空mSocket
s_lj.setText("连接");
Toast.makeText(MainActivity.this,"连接已关闭",Toast.LENGTH_LONG).show();
}
catch (IOException e){
e.printStackTrace();
}
} dk=Integer.parseInt(text);//将字符串“text”转换成整数型
str="";
new ServerThreadTCP().start();
break;
这个程序可以运行,实际接线能控制风扇运转。我的思路是点击“连接服务器”按钮后APP与ESP8266模块建立socket连接,按钮文本变成“断开”(用到handler已实现),在点击这个按钮时就断开与esp8266的socket连接。但是现在问题是连接ok,文本改变ok,就是点解按钮想断开连接时闪退,大神们帮我分析分析,万分感谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货