У меня есть три кнопки, которые являются изображениями на экране. Когда пользователь нажимает на экран в области кнопки, логическое значение, указывающее, что кнопка нажата, превращается в значение true. Это отлично работает, за исключением того, что у меня три кнопки, поэтому, когда я удерживаю две кнопки и поднимаю одну, все кнопки поворачиваются, как будто я их никогда не нажимал. Я знаю, где это решить, но я не уверен, как это сделать. Как я могу исправить это, чтобы, если у меня две нажатые кнопки, когда я поднимаю палец с одной кнопки, другая кнопка не становится «не нажата», но остается «нажата»?Удерживая кнопку нажатой, когда другие кнопки не нажаты
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;
}
Кажется, круглый способ сделать это. Во всяком случае, правильно ли запускаются ваши события TOUCH_DOWN? –
@AnudeepBulla Да, все события TOUCH_DOWN работают правильно. Я думаю, что проблема заключается в событиях TOUCH_UP, но я не уверен, как установить это. – user2712795
В принципе, вы хотите, чтобы «RadioGroup» с 3 пользовательскими «RadioButtons» в форме кнопок. –