首页 > 解决方案 > 修改 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());
            }
        });

标签: javastringandroid-studioandroid-sensors

解决方案


尝试在开关盒外声明变量

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());
            }
        });

推荐阅读