2016-05-02 8 views
0

Ich habe eine RecyclerView an Ort und Stelle. Ich habe einen longClick Listener auf einige Artikel in diesem RecyclerView. Wenn dieser Listener aufgerufen/aktiviert wird, sollte er auf einen Klick auf irgendwas hören aber das Element, das longClicked war. Wie soll ich das machen?Hören für klicken Sie auf etwas anderes als das aktuelle Element in einem RecyclerView?

Ich habe versucht, eine onClickListener auf der RecyclerView selbst, aber das hat nicht funktioniert.

Zusatz: Original Problem

Die longClick auf ein Element wird verwendet, um eine alternative Ansicht zu zeigen, ähnlich wie Benachrichtigungen arbeiten in Android 6. Ich möchte noch einmal diese Alternative verstecken, wenn etwas anderes angeklickt wird.

+0

Bitte den entsprechenden Code hinzufügen. –

+0

Ich sehe nicht, wie Code in dieser Frage relevant ist. Ich frage nicht nach einem Fehler, den mein Code verursacht, sondern nach Ideen, wie ich das angehen kann. Wenn Sie Code sehen müssen, müssen Sie mir sagen, was Sie brauchen. – Timmiej93

+0

Ich bin mir nicht sicher, ob das überhaupt möglich ist. Ein Artikel, der Klicks für andere Artikel erhält. Und selbst wenn es so ist, scheint es ein schlechter Ansatz zu sein. Ich bin mir sicher, dass alles, was Sie mit diesem Ansatz versuchen, besser und einfacher durchgeführt werden kann. Wenn Sie Ihr ursprüngliches Problem angeben können (warum Sie dies tun müssen), dann kann ein Ansatz entschieden werden. – varunkr

Antwort

0

Eine Möglichkeit besteht darin, eine Methode editItem in Ihrem recyclerView-Adapter zu haben, die im Grunde ein Element bearbeitet. Wenn ein anderer Artikel angeklickt wird, bearbeiten Sie einfach den vorherigen Artikel

public void editItem(int position, Item item) { 
     itemList.remove(position);  // Removing the changed item 
     itemList.add(position, item); // Adding back your old item 
     notifyItemChanged(position); // Notifying 
    } 
+0

Ich denke, du hast die Questiono missverstanden n. Ich frage nicht, wie ich den Gegenstand ändern soll, ich frage, wie ich auf Klicks auf ** alles andere als ** den aktuellen Gegenstand hören soll. – Timmiej93

+0

Oh, du meinst, du möchtest, dass Gegenstände, die geändert werden, überhaupt keine Klicks erhalten sollen? – varunkr

+0

Nun, sie sollten, aber diese sind getrennt. Das geänderte Element funktioniert gut, ich möchte nur zum Original zurückkehren, wenn etwas angeklickt wird, das ** nicht ** das aktuelle Element ist. – Timmiej93