FirebaseRecycleAdapter 以正确的方式添加 onSwipe
FirebaseRecycleAdapter adding onSwipe the right way
我有一个 FirebaseRecyclerAdapter,我尝试在其中添加一个我使用 ItemTouchHelper.SimpleCallback
创建的 onSwipe 方法。下面是我的代码,其中尝试在滑动时删除一个 firebase 条目。下面的代码确实删除了一个 firebase 条目,除了它总是删除列表中的最后一个条目。我希望它与以错误的方式解析 list_id 有关。是否可以在 populateViewHolder 中调用 onSwipe?
private String other_id;
protected void onStart() {
super.onStart();
final FirebaseRecyclerAdapter<Lists, ListAdapter.ListsViewHolder> listsRecycleViewAdapter = new FirebaseRecyclerAdapter<Lists, ListAdapter.ListsViewHolder>(
Lists.class,
R.layout.list_single_layout,
ListAdapter.ListsViewHolder.class,
mDoneListRef
) {
@Override
protected void populateViewHolder(final ListAdapter.ListsViewHolder viewHolder, Lists model, final int position) {
final String list_id = getRef(viewHolder.getAdapterPosition()).getKey();
other_id = list_id;
mDoneListRef.child(list_id).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
//do stuff
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
};
mListView.setAdapter(listsRecycleViewAdapter);
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction, int position) {
mDoneListRef.child(other_id).removeValue();
}
您需要查找被传递到 onSwiped
的 position
参数刷过的项目。沿着这些线的东西:
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction, int position) {
listsRecycleViewAdapter.getRef(position).removeValue();
}
我有一个 FirebaseRecyclerAdapter,我尝试在其中添加一个我使用 ItemTouchHelper.SimpleCallback
创建的 onSwipe 方法。下面是我的代码,其中尝试在滑动时删除一个 firebase 条目。下面的代码确实删除了一个 firebase 条目,除了它总是删除列表中的最后一个条目。我希望它与以错误的方式解析 list_id 有关。是否可以在 populateViewHolder 中调用 onSwipe?
private String other_id;
protected void onStart() {
super.onStart();
final FirebaseRecyclerAdapter<Lists, ListAdapter.ListsViewHolder> listsRecycleViewAdapter = new FirebaseRecyclerAdapter<Lists, ListAdapter.ListsViewHolder>(
Lists.class,
R.layout.list_single_layout,
ListAdapter.ListsViewHolder.class,
mDoneListRef
) {
@Override
protected void populateViewHolder(final ListAdapter.ListsViewHolder viewHolder, Lists model, final int position) {
final String list_id = getRef(viewHolder.getAdapterPosition()).getKey();
other_id = list_id;
mDoneListRef.child(list_id).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
//do stuff
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
};
mListView.setAdapter(listsRecycleViewAdapter);
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction, int position) {
mDoneListRef.child(other_id).removeValue();
}
您需要查找被传递到 onSwiped
的 position
参数刷过的项目。沿着这些线的东西:
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction, int position) {
listsRecycleViewAdapter.getRef(position).removeValue();
}