Anzeigen einer Schaltfläche zum Löschen beim Streichen in einer Listenansicht für Android

Als Erweiterung einer anderen Frage zu Stackoverflow habe ich einen Gestenerkennungscode implementiert, mit dem ich erkennen kann, wann eine Zeile in meiner Listenansicht (die sich in einem FrameLayout befindet) überstrichen wurde. Ich bin der Frage / Antwort von Damian gefolgt, wie man die einzelne Zeile / Ansicht vom Adapter erhält.So erhalten Sie die Position (auf dem Bildschirm) der Zeile in der Listenansicht

Ich habe Code in meinem onFling, der die Ansicht für die Zeile abruft und versucht, eine Löschschaltfläche, die in meinem XML-Layout als unsichtbar festgelegt ist, sichtbar zu machen. Dies geschieht jedoch nicht. Ich habe mich gefragt, wie ich eine Schaltfläche in einer Listenansicht auf einem Wisch sichtbar mache.

class MyGestureDetector extends SimpleOnGestureListener {
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
            float velocityY) {
        try {

            if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
                    && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
                int itemId = MyClass.this.lv.pointToPosition(
                        (int) e1.getX(), (int) e1.getY());

                Log.v("item id", String.valueOf(itemId));
                View v = MyClass.this.adapter
                        .getViewOnScreen(itemId);
                Button delete = (Button) v.findViewById(R.id.button_delete);

                delete.setVisibility(View.VISIBLE);
                //MyClass.this.adapter.notifyDataSetChanged();


            }

        } catch (Exception e) {
            // nothing
        }
        return false;
    }
}

Mein Listenadaptercode ist derselbe wie die Frage, auf die verwiesen wird.

Bearbeiten: Ich habe versucht, mit getChildAt () in der Listenansicht die Zeilenansicht abzurufen. Dies funktioniert, wenn nur ein Bildschirm oder weniger Elemente vorhanden sind, aber mehr als die falsche Ansicht zurückgegeben wird und daher die falsche Schaltfläche zum Löschen sichtbar wird.

Edit 2: Ich habe die Antwort auf die Frage verwendetHier damit es funktioniert:

Antworten auf die Frage(1)

Ihre Antwort auf die Frage