如何执行GridView项的单击

时间:2019-01-13 00:20:17

标签: android gridview onclicklistener

我有一个PagerAdapter,里面有一个GridView。

在GridAdapter类中,我添加了一个On Touch Listener,用于区分单击和拖动。 当我拖动一个元素时,一切工作都很好(我在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();”但什么也没发生。 在GridView的onItemClickListener中,如果单击了某个项目,则将启动MainFunction.pause()方法。 我该怎么办?

谢谢!

0 个答案:

没有答案