java - 修改 switch 语句内的变量以在 switch 外部使用
问题描述
我正在尝试构建一个 Android 应用程序,该应用程序可以访问加速度计传感器,并在单击按钮时将加速度计值(由 <> 包围)输出到串行 USB。当我更新值并尝试在 onClick 命令中调用它时遇到问题。我该怎么做?
switch (sensorType) {
case Sensor.TYPE_ACCELEROMETER:
float accelX = event.values[0];
break;
case Sensor.TYPE_MAGNETIC_FIELD:
float magX = event.values[0];
break;
}
final Button buttonAX = findViewById(R.id.Xbutton);
buttonAX.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String ax = "<"+String.valueOf(accelX)+">";
serialPort.write(ax.getBytes());
}
});
解决方案
尝试在开关盒外声明变量
float accelX=0f, magX=0f;
switch (sensorType) {
case Sensor.TYPE_ACCELEROMETER:
accelX = event.values[0];
break;
case Sensor.TYPE_MAGNETIC_FIELD:
magX = event.values[0];
break;
}
final Button buttonAX = findViewById(R.id.Xbutton);
buttonAX.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String ax = "<"+String.valueOf(accelX)+">";
serialPort.write(ax.getBytes());
}
});
推荐阅读
- java - 转换到日期字段时出错:org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; 糟糕的 SQL 语法
- webpack - Webpack 迁移 v4 到 v5
- reactjs - Docker 从 docker-compose.yml 设置一个 ENV 变量
- wso2 - Wso2 Cache Mediator 未返回预期响应
- c++ - 进程启动时自动连接vs code c++调试器
- android - 如何在android中获得高质量的位图?
- python - 使用 Xarray 绘制多年的月平均值
- c# - 如何以编程方式使用 MSBuild 构建 DotNet Core 项目
- docker - 阻止终端尝试连接到 docker
- rocket.chat - iframe cust-oauth iframe 命令