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

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

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

Многократное срабатывание OnTouch - Программирование Android

21.04.2015, 22:00. Просмотров 196. Ответов 0
Метки нет (Все метки)

Добрый вечер всем. Имеется onTouch на ListView, который почему-то. срабатывает дважды или трижды (через-раз).
Хотелось бы понять и устранить причину лишних срабатываний.

P.S. Действие происходит на ViewPager с использованием Fragment и FragmentStatePagerAdapter.

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 public boolean onTouch(View v, MotionEvent event) {
           switch(event.getAction()){
            case MotionEvent.ACTION_DOWN:
                xStart=event.getX();
                yStart=event.getY();
                break;
             case MotionEvent.ACTION_CANCEL:
                 Log.d("action","CHANCEL");
                 break;
            case MotionEvent.ACTION_MOVE:   
                x=event.getX();
                y=event.getY();
                Log.d("edit","y="+y+" x="+x);
                deltX= x-xStart;
                deltY=y-yStart;
         if(deltX>10 && Math.abs(deltY) < 20 ){
            Log.d("add","MOVIE");
                    book2.setVisibility(View.INVISIBLE);
                    book2.setVisibility(View.VISIBLE);
                    book2.setBackgroundResource(R.drawable.backpageanim);
             animpg2= (AnimationDrawable)book2.getBackground();
             animpg2.start(); 
             adapter2.clear();
             checkIfAnimationDone(animpg2);
                }
                break;
        case MotionEvent.ACTION_UP:
         Log.d("action","up");
        
        }
            
                return false;
            }
      
          private void checkIfAnimationDone(AnimationDrawable animpg){
                final AnimationDrawable a = animpg;
                int timeBetweenChecks = 1;
                Handler h = new Handler();
                title2.setText(null);
                h.postDelayed(new Runnable(){
                    public void run(){
                        if (a.getCurrent() != a.getFrame(a.getNumberOfFrames() - 1)){
                            checkIfAnimationDone(a);
                        } else{
                            
                            Log.d("days","dayengFIRST " + dayeng+ ";  " + "dayFIRST = "+day);
                            if(setkol!=1){
                            
                            dayeng=getdaynow(dayeng,"dayeng","-",1);
                             day=getdayrus(dayeng);
                            }
                            if(setkol==1){  
                                    dayeng=getkoldaynow(dayeng,"dayeng","-",1);
                                     day=getkoldayrusnow( dayeng,day);
                            }
                            
                            Log.d("days","dayeng " + dayeng+ ";  " + "day = "+day);
                            
                            title2.setText(day);
                          adapter2.clear();
                          adapter2.addAll(db.getSubjects(dayeng));
                       BookActivity.pg.setupd(dayeng,week);
                        }
                    }
                }, timeBetweenChecks);
          }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2015, 22:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Многократное срабатывание OnTouch (Программирование Android):

Одновременное срабатывание onTouch и onItemLongClick - Программирование Android
Добрый день, коллеги, Есть два обработчика: OnTouchListener и onItemLongClickListener. Первый нужен для определения свайпа элемента...

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

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

OnTouch на элементе меню - Программирование Android
как присвоить setOnTouchListener элементу меню?

Программный вызов onTouch - Программирование Android
В игре после завершения уровня для перехода в следующий нужно сделать один клик (событие Down) Хочу сделать автоматический клик. В...

Вылет onTouch(), перетаскивание - Программирование Android
Хочу сделать так, что при перемещении картинки видел ее координаты. В чем ошибка? Спасибо. protected void onCreate(Bundle...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2015, 22:00
Привет! Вот еще темы с ответами:

OnTouch из активити для View - Программирование Android
В активити прописан метод onTouch. Что нужно написать чтобы добавленные View так же вызывали выполнение кода при прикосновении

OnTouch траблы с viewflipper и viewpager - Программирование Android
Доброго всем времени суток! Помогите разобраться, в чем беда. Пытаюсь использовать для свайпинга viewflipper или viewpager. в обоих...

OnTouch узнать цвет пикселя - Программирование Android
Добрый день, форумчане! Начал как хобби изучать андройд программирование. Работаю в Android studio. Сейчас создал проект с Draw2D с...

OnTouch MotionEvent в андроид выполняется только один раз - Программирование Android
Так вот сам вопрос: MotionEvent.ACTION_UP выполняется только первый раз, что при использовании if, что case. Кликаем по копке звук...


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

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

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