提问者:小点点

无法删除项目和值Firebase RecyclerView


我正在使用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();


                }
            }) {

            }
    );    

我只想在用户单击删除按钮时执行此操作。我应该如何做到这一点。请帮忙。


共2个答案

匿名用户

您的单击处理程序连接到整个项目,因此它确实会在单击该项目时运行。

如果您只想在用户单击按钮时删除该项目,您应该将单击处理程序连接到该按钮。您可以在中执行此操作:

public void populateViewHolder(ChatHolder chatMessageViewHolder, Chat chatMessage, int position) {
    chatMessageViewHolder.getDeleteButton().setOnClickListener(...).
}

匿名用户

它必须是:

recyclerViewCart.getRef(position).removeValue();