Как обрабатывать как события клика, так и долгого нажатия на gridview android?

Мое требование к приложению - обрабатывать как события нажатия, так и события длительного нажатия в виде сетки.

Я пробовал и то и другое, но не работал, только долго нажимал на событие.

если я удаляю длинное нажатие события, то работает событие щелчка.

Но когда я пытаюсь поставить оба события, то только долгое время работает событие.

так, как я могу реализовать оба события в виде сетки Android.

У меня много дел, но я не могу найти идеальное решение, у кого-то есть решение или идея, а потом выручите меня.

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

Код:-

gv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> av, View v, int pos, long id) {
    onGridItemClick(v,pos,id);
}
});

protected void onGridItemClick(View v, int pos, long id) {
Log.i(TAG, "onItemClick id=" + id);
}

gv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> av, View v, int pos, long id) {
    return onLongGridItemClick(v,pos,id);
}
});

protected boolean onLongGridItemClick(View v, int pos, long id) {
Log.i(TAG, "onLongGridItemClick id=" + id);
return true;
}

1 ответ

Вы должны вернуть false в вашем длинном клике слушателя. Таким образом, событие не используется и не передается слушателю щелчка элемента.

protected boolean onLongGridItemClick(View v, int pos, long id) {
    Log.i(TAG, "onLongGridItemClick id=" + id);
    return false;
}
Другие вопросы по тегам