J'essaie de faire une application comme "Heads up" juste pour plus d'exercice !! Mais maintenant je faisais face à un problème logique dans l'utilisation accéléromètre dans mon application. Je veux que le toast soit "correct" quand il est incliné (l'accéléromètre donne -7 dans cette position) et que le toast soit "faux" quand l'inclinaison est relevée (l'accéléromètre donne 7 ou plus dans cette position).Problème de logique lors de l'utilisation de l'accéléromètre
Mais le problème était que l'application toast plusieurs fois à plusieurs reprises dans chaque position. J'ai donc utilisé un booléen (isToasted) pour faire griller l'application une fois dans chacune de ces positions. Mais maintenant, il ne trinque pas du tout!
Où est mon problème et que dois-je faire?
ceci est une partie de mes codes:
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.
}
les journaux d'erreurs ou trace de pile? – Shek
il n'y a pas de journal d'erreurs –
isToasted ne sera jamais vrai avec votre code actuel. Il est défini sur false par défaut. – Compass