Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

11.12.2013, 15:12. Просмотров 772. Ответов 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;
           }
});
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2013, 15:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос OnTouch MotionEvent в андроид выполняется только один раз (Программирование Android):

Почему этот цикл выполняется один раз? - Программирование Android
Canvas, прорисовав один раз все изображения, останавливается, а задача в том чтобы изображения менялись как слайды. Подскажите, что не так?...

Показать только один раз - Программирование Android
Подскажите, как можно показать заставку(это может быть изображение, или активность с imageView) только при первом запуске приложения??? При...

Можно ли написать веб сервер на Яве для клиента на Андроид,имея под рукой только телефон на том самом андроид? - Программирование Android
Уважаемые гуру программирования, если можно, пожалуйста, напишите поподробнее- какой программой компилировать код, какой лучше выбрать...

Один ip на компе и на андроид - Программирование Android
Почему у меня один ip на компе и на андроид-телефоне? Проверяю через http://2ip.ru/ Я захожу в инет с компа и с андроид через один...

Обработка MotionEvent - Программирование Android
Пишу пытаюсь писать калькулятор. Имеются дцать кнопок для ввода. По три значения на каждую кнопку (тач, свайп вверх, свайп вниз) для...

Чувствительность MotionEvent.ACTION_MOVE - Программирование Android
Здравствуйте! В SurfaceView сделал тайлы, у них нужно обрабатывать нажатия и перемещение. Проблема в том, что MOVE слишком чувствителен и...

2
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
12.12.2013, 00:09 #2
во втором варианте вам нужно breake поставить после playSound(catSound);
0
alexkusturoff
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 3
12.12.2013, 01:25  [ТС] #3
Цитата Сообщение от KillAndEat Посмотреть сообщение
во втором варианте вам нужно breake поставить после playSound(catSound);
Разобрался уже сам.
Суть в том, что в stopSound нужно передавать не сам файл, а идентификатор потока.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2013, 01:25
Привет! Вот еще темы с ответами:

Задержка отрисовки Canvas. MotionEvent - Программирование Android
Здравствуйте. Написал простейшую программу рисующую жёлтую точку при касании экрана. Как только начинаю водить пальцем, точка начинает...

Обработка перемещения объекта на экране - MotionEvent.ACTION_MOVE - Программирование Android
Когда перемещаю картинку к краю экрана, то её размер уменьшается, а после совсем исчезает. Нужно сохранять размер постоянным. Как? ...

OnTouch и onLongClick - Программирование Android
вот есть ImageButon btnAdd @Override public boolean onTouch(final View view, MotionEvent motionEvent) { switch...

registerForContextMenu и ontouch - Программирование Android
Здравствуйте! Столкнулся с проблемой: при единичном нажатии на экран, срабатывает OnTouch public boolean onTouch(View v,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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