按下不同按键,往服务器发送不同消息
目录
一、页面xml部分
- 放置2个按键
- 每个按键分配id,方便java获取,使用onClick绑定函数
- 参考按键响应
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:id="@+id/b1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="bottonBeCliecked"
android:text="开灯" />
/>
<Button
android:id="@+id/b2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/b1"
android:onClick="bottonBeCliecked"
android:text="关灯" />
</RelativeLayout>
二、Java部分
创建2个类
2.1、NetUtills
- 创建一个函数,函数里开一个线程来发送数据
- 必须要在线程里进行网络访问,不然会有异常
public class NetUtills {
public static void sendMessageHandler(final String message){
new Thread(new Runnable() {
public void run() {
// TODO Auto-generated method stub
try {
Socket client = new Socket("192.168.1.42", 8980); //连接服务端
OutputStream out = client.getOutputStream(); //发送数据的通道
out.write(message.getBytes()); //转换成byte数组,发送
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
}
2.2、MainActivity
- 创建onClick绑定函数
- switch判断按下哪个按键,发送对应数据
public void bottonBeCliecked(View v){
switch(v.getId()){
case R.id.b1:
NetUtills.sendMessageHandler("on light");
break;
case R.id.b2:
NetUtills.sendMessageHandler("off light");
break;
}
}
师承上官可编程 —— 陈立臣