Я пытаюсь сделать приложение вроде «Heads up» только для более активного использования !!Проблема с логикой при использовании акселерометра
, но теперь я столкнулся с некоторой логической проблемой при использовании акселерометра в своем приложении.
Я хочу, чтобы приложение «тост» при нажатии на него (акселерометр дает -7 в этом положении) и тост «неправильно» при наклоне (акселерометр дает 7 или более в этом положении).
Но проблема заключалась в том, что приложение тост многократно повторялось в каждой позиции. поэтому я использовал логическое (isToasted), чтобы сделать тост для приложения один раз в каждой из этих позиций. Но теперь это совсем не тост!
где моя проблема и что мне делать?
это часть моих кодов:
Boolean isToasted = false;
@Override
public void onSensorChanged(SensorEvent event) {
int sensorValue = (int) event.values[2];
while (isToasted) {
switch (sensorValue) {
case 7: {
Toast.makeText(find_word2.this, "wrong", Toast.LENGTH_SHORT).show();
isToasted = true;
break;
}
case -7: {
Toast.makeText(find_word2.this, "correct", Toast.LENGTH_SHORT).show();
isToasted = true;
break;
}
}
}
if (sensorValue == 0) isToasted = false; //sensorValue = 0 means device is not tilted and it's in direct position.
}
любые журналы ошибок или трассировка стека? – Shek
нет журнала ошибок –
isToasted никогда не будет правдой с вашим текущим кодом. По умолчанию установлено значение false. – Compass