У меня есть 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 ().
Как я могу это сделать?
Заранее спасибо!