我正在使用Firebaseui的回收视图来显示购物车中的值,这是一个回收视图。我在回收视图的每一行都有删除按钮,当我单击删除按钮时,它应该从Firebase的数据库中删除值,并且在回收视图中的行也应该被删除。但问题是当我单击回收视图上的任何位置时,项目和数据库值都会被删除。
这是我正在使用的onClick代码:
recyclerViewCart.addOnItemTouchListener(
new RecyclerItemClickListener(Cart.this, recyclerViewCart, new RecyclerItemClickListener.OnItemClickListener() {
@Override
public void onItemClick(View childView, int position) {
Log.v(TAG, "YouClickon" + position);
key = mRecyclerViewAdapter.getRef(position).getKey();
listRef.child(key).removeValue();
}
}) {
}
);
我只想在用户单击删除按钮时执行此操作。我应该如何做到这一点。请帮忙。
您的单击处理程序连接到整个项目,因此它确实会在单击该项目时运行。
如果您只想在用户单击按钮时删除该项目,您应该将单击处理程序连接到该按钮。您可以在中执行此操作:
public void populateViewHolder(ChatHolder chatMessageViewHolder, Chat chatMessage, int position) {
chatMessageViewHolder.getDeleteButton().setOnClickListener(...).
}
它必须是:
recyclerViewCart.getRef(position).removeValue();