Как выполнить щелчок элемента GridView - PullRequest
0 голосов
/ 13 января 2019

У меня есть PagerAdapter, а внутри него GridView.

Внутри моего класса GridAdapter я добавляю прослушиватель на ощупь, который различает щелчок и перетаскивание. Когда я перетаскиваю элемент, все работает хорошо (я выполняю действие внутри функции onTouchListener), но когда я проверяю, что это щелчок, мне нужно выполнить щелчок элемента.

В моем случае gridView имеет только ImageView, а OnTouchListener имеет вид:

    image_view.setOnTouchListener(new View.OnTouchListener() {
                private static final int MAX_CLICK_DURATION = 800;
                private long startClickTime;

                @Override
                public boolean onTouch(View view, MotionEvent motionEvent) {
                    switch (motionEvent.getAction()) {
                        case MotionEvent.ACTION_DOWN:
                            startClickTime = Calendar.getInstance().getTimeInMillis();
                            countDownTimer = new CountDownTimer(MAX_CLICK_DURATION, 100) {
                                public void onTick(long millisUntilFinished) {
                                    //none
                                }

                                public void onFinish() {
                                    MainFunction.play();
                                }
                            }.start();
                            return true;
                        case MotionEvent.ACTION_UP:
                            // The touch just ended
                            countDownTimer.cancel();
                            MainFunction.stop();
                            long clickDuration = Calendar.getInstance().getTimeInMillis() - startClickTime;
                            if(clickDuration < MAX_CLICK_DURATION) {
                                //click event has occurred
                                parent.getChildAt(position).performClick();
                            }
                            return false;
                    }
                    return false;
                }
            });

Я пытался с "parent.getChildAt (position) .performClick ();" но ничего не происходит Если в элементе onItemClickListener GridView щелкнуть элемент, запустится метод MainFunction.pause (). Как я могу это сделать?

Заранее спасибо!

...