2015-07-07 1 views
14

Ich implementiere Swipe und Drag in RecyclerView mit Hilfe dieser article. Beim Entfernen des Artikels möchte ich eine SnackBar zeigen aber SnackBar View anzeigen. Ich weiß nicht, wie man View innerhalb der Funktion eines RecyclerAdapter bekommt.Wie man in RecyclerView.Adapter für Snackbar sehen?

Mein Code:

public void onItemDismiss(int position) { 
     notes.remove(position); 
     notifyItemRemoved(position); 
     /* Show SnackBar */ 
    } 

Edit: Meine Frage ist, unterscheidet sich von this question. Ich habe kein Problem bei der Implementierung von SwipetoDismiss. Ich habe es erfolgreich implementiert. Aber ich möchte eine SnackBar zeigen, damit Benutzer benachrichtigt werden und rückgängig machen können. Ich habe Probleme damit, SnackBar nicht in onSwiped() zu implementieren.

+0

ein erstellen Interface, um in Sicht + eine ganze Zahl zu übergeben, verwenden Sie es als Callback durch Implementierung in Ihrer Aktivität oder Fragment. –

+0

Ich habe die Schnittstelle, die ich durch RecyclerAdapter implementiere, geändert. Aber für den Rückruf kann nur ItemTouchHelper.Callback verwendet werden. Um Swipe zu machen, müssen wir OnSwiped-Methode in diesem Callback überschreiben – Mmohits

+0

Schauen Sie sich nur mein Arbeitsbeispiel an. –

Antwort

6

Ihre Methode ändern und RecyclerView als Parameter übergeben, so dass Sie Ansicht

public void onItemDismiss(int position,RecyclerView rv) { 
     notes.remove(position); 
     notifyItemRemoved(position); 
     /* Show SnackBar */ 
     Snackbar.make(rv, R.string.snackbar_text, Snackbar.LENGTH_LONG).show(); 
    } 

EDIT

private final ItemTouchHelperAdapter mAdapter; 
private final RecyclerView rv; 
public SimpleItemTouchHelperCallback(ItemTouchHelperAdapter adapter,RecyclerView rv) { 
    mAdapter = adapter; 
    this.rv=rv; 
} 

bekommen und dann passieren

@Override 
    public void onSwiped(ViewHolder viewHolder, int direction) { 
     mAdapter.onItemDismiss(viewHolder.getAdapterPosition(),rv); 
    } 
+0

Zeigt Fehler bei 'onSwiped' an Methode auf 'SimpleItemTouchHelperCallback' – Mmohits

+0

welche Art von Fehler? –

+0

onItemDismiss (int, RecyclerView) in ItemTouchHelper kann nicht auf (int) angewendet werden – Mmohits