2

我正在开发一个通过 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();
                }
            }
4

1 回答 1

3

您可以对所有 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" 
/>
于 2013-07-28T17:23:08.037 回答