Android OnLongClickListener seltsames / unzuverlässiges Verhalten

Ich kämpfe derzeit gegen den OnLongClickListener auf Android Api Lvl 8.

Nimm diesen Code:

this.webView.setOnLongClickListener(new OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        System.out.println("long click");
        return true;
    }
});

Es funktioniert einwandfrei. Ich kann überall im WebView drücken und das Ereignis wird jedes Mal ausgelöst.

Nun sieh dir das an:

this.webView.setOnLongClickListener(new OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        final EditText editText = getUrlTextField();

        switch (editText.getVisibility()) {
        case View.VISIBLE:
            editText.setVisibility(View.GONE);
            return true;
        case View.GONE:
            editText.setVisibility(View.VISIBLE);
            return true;
        default:
            return false;
        }
    }
});

Angenommen, die URL-EditText-Komponente ist derzeit sichtbar, wird sie nicht mehr angezeigt und sollte erneut angezeigt werden, wenn ein weiteres langes Klickereignis ausgelöst wird. Wenn Sie dies jedoch ausführen, funktioniert das Ereignis nur einmal (!), Wenn Sie einen langen Klick auf eine beliebige Position im WebView ausführen. Um die Sache zu komplizieren, funktioniert der lange Klick wieder, wenn er über einen Link auf der Website ausgeführt wird ...

Kann mir jemand erklären, ob es sich um einen Fehler in der SDK handelt und / oder ob ich einen Fehler bei der Funktionsweise des OnLongClickListener gemacht habe?!? : /

BEARBEITEN

Ich habe jetzt mehrere verschiedene Szenarien auf einem Nexus One ausgeführt und bin zu folgendem Ergebnis gekommen: Wenn Sie das Layout zur Laufzeit ändern, wird der OnLongClickListener mehr oder weniger gestört ... Ich habe keinen Weg gefunden, es überhaupt zuverlässig zum Laufen zu bringen ...

Ich würde mich sehr freuen, wenn mir jemand einen Tipp geben könnte ... Ich bin mit meinem Verstand am Ende:

Antworten auf die Frage(4)

Ihre Antwort auf die Frage