Изменить переменную внутри оператора switch для использования вне switch - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь создать приложение для 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());
            }
        });

1 Ответ

1 голос
/ 17 октября 2019

Попробуйте объявить переменную вне регистра переключателя

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());
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...