Odbiornik Android GridView OnItemLongClick wywołany po OnItemClick

Zasadniczo chcę pokazać inne menu kontekstowe, gdy użytkownik kliknie kliknięcia lub długie kliknięcia komórki w widoku siatki. Mam problem z tym, że jeśli użytkownik kliknie krótko, wywołanie nasłuchu OnItemClick jest wywoływane i widzę, że debuger osiąga kod, który pokazuje menu kontekstowe, ale zamiast przenosić się z niego do onCreateContextMenu, przechodzi do onItemLongClick.

Próbowałem użyć Boolean, aby zapobiec wykonywaniu długiego kliknięcia kodu, który uniemożliwia wykonanie kodu, jednak nawet gdy jest to zrobione, onCreateContextMenu nie jest w ogóle wywoływany.

Jeśli usuwam słuchacz onItemLongClick, słuchacz krótkiego kliknięcia działa poprawnie, a menu kontekstowe jest wyświetlane poprawnie.

Wiem, że inni ludzie zadawali pytania podobne do tego, ale wciąż nie byłem w stanie znaleźć rozwiązania, które działa. Jeśli ktokolwiek może rozwiązać ten problem lub wskazać mi właściwy kierunek, daj mi znać, dzięki z góry. Bounty zostanie przyznane każdemu, kto może nawet wskazać mi właściwy kierunek.

To uproszczona wersja kodu dla słuchaczy:

        mTGrid.setOnItemClickListener(new OnItemClickListener() {
            //this listener should show the context menu for a short click on the gridview.
            @Override
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                    mRequiredMenu = "standard";
                    parent.showContextMenuForChild(v);      

            }
        });

        mTGrid.setOnItemLongClickListener(new OnItemLongClickListener() {
            //this listener should show the context menu for a long click on the gridview.
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) {
                    mRequiredMenu = "options";
                        parent.showContextMenuForChild(v);      

            }
        });

questionAnswers(5)

yourAnswerToTheQuestion