获取Firebase回收器视图持有器的钥匙,以删除特定的帖子,以删除特定的帖子



我有一个 recycler视图持有人由帖子的注释组成,我需要删除在长press上的评论,但是为此,我需要位置的键

在我的bindview持有器中,我具有下面的代码,但它在无法重新解析方法getRef(int)

上显示我错误
       @Override
       public void onBindViewHolder(final CommentViewHolder holder, final int position) {
        final Comm comment = mComments.get(position);

        final DatabaseReference postRef = getRef(position);
        final String postKey = postRef.getKey(); 

如果我获得了帖子密钥,我可以删除评论。如何获得该特定评论的关键?

这个想法是,您必须从适配器进行回调以调用片段/活动,然后从列表中删除评论,并在适配器上调用 notifyDataSetChange()。

回调将具有int position作为参数,可用于在给定位置获取对象并从列表中删除。

//your constructor for adapter
  private OnClickViewItemListener mItemListener;
     private List<Comm> listData;
        public YourAdapter(List<Comm> listData, OnClickViewItemListener mItemListener) {
            this.listData = listData;
            this.mContext = mContext;
            this.mItemListener = mItemListener;
        }

您的适配器视图持有人应进行以下更改。

 public CommentViewHolder(View itemView) {
        super(itemView);
        mButton = (Button)itemView.findViewById(R.id.btDelete);
        mButton.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(final View v) {
                mItemListener.onClickViewItem(v,getAdapterPosition());
                return false;
            }
        });
    }

现在在您的活动或片段中实现OnClickViewItemlistener,并做您想做的任何事情。

 @Override
    public void onClickViewItem(View view, int position) {
        //here handle the item click listener
        // remove the comment here and notify adapter
       commList.remove(position);
    }

最新更新