Ich habe drei Tasten, die Bilder auf dem Bildschirm sind. Wenn der Benutzer auf den Bildschirm innerhalb des Bereichs der Schaltfläche drückt, wird der boolesche Wert, der besagt, dass die Schaltfläche gedrückt wird, auf wahr gesetzt. Das funktioniert großartig, außer dass ich drei Tasten habe. Wenn ich also zwei Tasten drücke und eine hochhebe, drehen sich alle Tasten, als hätte ich sie nie gedrückt. Ich weiß, wo ich das lösen muss, aber ich weiß nicht wie. Wie kann ich das beheben, so dass, wenn ich zwei Tasten gedrückt habe, wenn ich meinen Finger von einer Taste abhebe, die andere Taste nicht "nicht gedrückt" wird, sondern "gedrückt" bleibt?Taste gedrückt halten, wenn andere Tasten nicht gedrückt werden
boolean B1Pressed = false;
boolean B2Pressed = false;
boolean B3Pressed = false;
int len = touchEvents.size();
for (int i = 0; i < len; i++) {
TouchEvent event = touchEvents.get(i);
if (event.type == TouchEvent.TOUCH_DOWN) {
if (inBounds(event, 340,512,140,140)) {
B1Pressed = true;
Log.d("GameScreen", "Button 1 Pressed");
// Button 1
}
if (inBounds(event, 340,320,140,140)) {
B2Pressed = true;
Log.d("GameScreen", "Button 2 Pressed");
// Button 2
}
if (inBounds(event, 340,120,140,140)) {
B3Pressed = true;
Log.d("GameScreen", "Button 3 Pressed");
// Button 3
}
}
if (event.type == TouchEvent.TOUCH_UP) {
B1Pressed = false;
B2Pressed = false;
B3Pressed = false;
}
private boolean inBounds(TouchEvent event, int x, int y, int width,
int height) {
if (event.x > x && event.x < x + width - 1 && event.y > y
&& event.y < y + height - 1)
return true;
else
return false;
}
Scheint eine Runde um es zu tun. Wie auch immer, werden Ihre TOUCH_DOWN-Ereignisse korrekt ausgelöst? –
@AnudeepBulla Ja, alle TOUCH_DOWN-Ereignisse funktionieren ordnungsgemäß. Ich denke, das Problem ist in den TOUCH_UP-Ereignissen, aber ich bin mir nicht sicher, wie man das aufstellt – user2712795
Grundsätzlich wollen Sie eine 'RadioGroup' mit 3 benutzerdefinierten' RadioButtons' in Form von Buttons. –