我正在开发一款通过wifi网络与arduino车辆通信的Android应用程序。 我通过EditText字段发送命令,我使用w,q,s,d来启动,停止,向左转,然后向右转。解决方案工作得很好...... 但我想创建4个按钮,而不是将命令直接发送到arduino,我不知道在点击时我应该调用哪个方法。
public void onClick(View view) {
try {
EditText et = (EditText) findViewById(R.id.EditText01);
String str = et.getText().toString();
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
out.println(str);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
答案 0 :(得分:2)
您可以为所有4个按钮重复使用相同的方法。只需用他们的ID区分它们
public void onClick(View view) {
String command = null;
switch (view.getId()) {
case R.id.button1:
command = "w";
break;
case R.id.button2:
command = "a";
break;
case R.id.button3:
command = "d";
break;
case R.id.button4:
command = "s";
break;
}
try {
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
out.println(command);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
XML中的:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="w"
/>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="d"
/>
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="s"
/>
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="a"
/>