Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
alexkusturoff
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 3
#1

OnTouch MotionEvent в андроид выполняется только один раз - Android

11.12.2013, 15:12. Просмотров 707. Ответов 2
Метки нет (Все метки)

Так вот сам вопрос: MotionEvent.ACTION_UP выполняется только первый раз, что при использовании if, что case.
Кликаем по копке звук играет, отпускаем останавливается. При втором клике начинает играть, а при отпускании ничего не происходит.
1 Вариант:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ImageButton cow = (ImageButton)this.findViewById(R.id.cow);
cow.setOnTouchListener(new View.OnTouchListener() {  
 
public boolean onTouch(View v, MotionEvent event) {
  int eventAction = event.getAction();
  if (eventAction== MotionEvent.ACTION_UP) {
  stopSound(catSound);
   }
if (eventAction == MotionEvent.ACTION_DOWN){
playSound(catSound);
 
   }
if (event.getAction() == MotionEvent.ACTION_CANCEL) {
stopSound(catSound);
}
                   return true;
                   
           }
 
});
2 Вариант:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
final ImageButton cat = (ImageButton)this.findViewById(R.id.cat);
cat.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View cat, MotionEvent event) {
int eventAction1 = event.getAction();
               switch (eventAction1) {
             
                 case MotionEvent.ACTION_DOWN:
                     playSound(catSound);
                 
               
                 case MotionEvent.ACTION_UP:
                 stopSound(catSound);
                 
                 return true;
                 case MotionEvent.ACTION_CANCEL:
                 stopSound(catSound);
                 
                 return true;
                 
                      }
               return false;
           }
});
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2013, 15:12     OnTouch MotionEvent в андроид выполняется только один раз
Посмотрите здесь:

Android Задержка отрисовки Canvas. MotionEvent
Обработка MotionEvent Android
Android Показать только один раз
Android Почему этот цикл выполняется один раз?
registerForContextMenu и ontouch Android
Один ip на компе и на андроид Android
Программный вызов onTouch Android
Android OnTouch и onLongClick
Обработка перемещения объекта на экране - MotionEvent.ACTION_MOVE Android
Android Можно ли претендовать на должность Java программиста, если знать только яву под андроид?
Android Чувствительность MotionEvent.ACTION_MOVE
Android OnTouch на элементе меню

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
12.12.2013, 00:09     OnTouch MotionEvent в андроид выполняется только один раз #2
во втором варианте вам нужно breake поставить после playSound(catSound);
alexkusturoff
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 3
12.12.2013, 01:25  [ТС]     OnTouch MotionEvent в андроид выполняется только один раз #3
Цитата Сообщение от KillAndEat Посмотреть сообщение
во втором варианте вам нужно breake поставить после playSound(catSound);
Разобрался уже сам.
Суть в том, что в stopSound нужно передавать не сам файл, а идентификатор потока.
Yandex
Объявления
12.12.2013, 01:25     OnTouch MotionEvent в андроид выполняется только один раз
Ответ Создать тему
Опции темы

Текущее время: 16:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru