我正在开发一个Android应用程序,通过wifi网络与arduino车辆进行通信。 我通过 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();
}
}
最佳答案
您可以对所有 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"
/>
关于java - Arduino/Android远程控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17910704/