我目前正在firebaseRecyclerView的帮助下添加朋友,如果用户点击添加按钮,他将被添加到数据库中n需要永久删除点击的项目..所以,如何通过firebase模型实现它,因为我们没有任何列表数据可以从中删除。这是代码(EmailPref!=null){finalFirebaseref=newFirebase(constants.FIREBASE_URL+"rootssahaj/authGplus");FirebaseRecyclerAdapteradapter=newFirebaseRecyclerAdapter(FriendsData.class,R.layout.chat_view_list,Friendsref){@TargetApi(Build.VERSION_CODES.KITKAT)@OverrideprotectedvoidpopulateViewHolder(FriendsViewHolderfriendsViewHolder,FriendsDatas,复制代码)intposition){Stringkey=this.getRef(position).getKey();Log.e("SahajLOG","StringKeyyy"+key+"nEmailPref"+EmailPref);如果(!Objects.equals(key,EmailPref)){friendsViewHolder.mName.setText(s.getUserNAME());Picasso.with(context).load(s.getPicurl()).transform(newCircleTransform()).into(friendsViewHolder.mImageProfile);字符串键本地=键;Log.e("pavan","填充AddF键"+keylocal+""+position);SharedPreferencesprefs=PreferenceManager.getDefaultSharedPreferences(mContext);prefs.getString("keylocal"+position,keylocal+position);if(keylocal!=null){prefs.edit().putString("keylocal"+position,keylocal+position).commit();}}else{friendsViewHolder.mCardView.setVisibility(View.GONE);//friendsViewHolder.setVisibility(View.GONE);}}};recyclerView.setLayout管理器(新的LinearLayoutManager(getActivity()));recyclerView.setItemAnimator(newSlideInLeftAnimator());recyclerView.getItemAnimator().setAddDuration(1000);recyclerView.getItemAnimator().setRemoveDuration(1000);recyclerView.getItemAnimator().setMoveDuration(1000);recyclerView.getItemAnimator().setChangeDuration(1000);SlideInLeftAnimator动画器=newSlideInLeftAnimator();animator.setInterpolator(newOvershootInterpolator());recyclerView.setItemAnimator(动画师);AlphaInAnimationAdapteralphaAdapter=newAlphaInAnimationAdapter(适配器);alphaAdapter.setDuration(500);alphaAdapter.setInterpolator(newOvershootInterpolator(.5f));alphaAdapter.setFirstOnly(false);recyclerView.setAdapter(newScaleInAnimationAdapter(alphaAdapter));}}公共类FriendsViewHolderextendsRecyclerView.ViewHolder{ImageViewmImageProfile;android.widget.TextViewmName;privateintmVisibility;BooleanCallAdd=false;ButtonmAdd;Stringkeylocal;CardViewmCardView;publicFriendsViewHolder(ViewitemView){super(itemView);mCardView=(CardView)itemView.findViewById(R.id.cardView);mImageProfile=(ImageView)itemView.findViewById(R.id.profilePICC);mName=(android.widget.TextView)itemView.findViewById(R.id.NameUSER);context=itemView.getContext();mAdd=(Button)itemView.findViewById(R.id.addButton);SharedPreferencesprefs=PreferenceManager.getDefaultSharedPreferences(context);if(prefs.getBoolean("CallAdd",CallAdd)){AddaddButton();}mAdd.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){SharedPreferencesprefs=PreferenceManager.getDefaultSharedPreferences(mContext);EmailPref=prefs.getString("EmailPref",EmailPref);keylocal=prefs.getString("keylocal"+getAdapterPosition(),keylocal+getAdapterPosition());finalFirebasemFirebaseRef=newFirebase(constants.FIREBASE_URL+"rootssahaj/authGplus/"+EmailPref);mFirebaseRef.child("friends").child(keylocal).setValue("true");Log.e("pavan","ChatAdapter"+EmailPref+keylocal+"finalkey:"+keylocal);//删除(getAdapterPosition());}});}publicvoidAddaddButton(){if(mAdd.getVisibility()==View.INVISIBLE){mAdd.setVisibility(View.VISIBLE);}}}解决方案如果您查看此代码,它会在单击注释时从Firebase中删除注释。如果您了解Firebase查询,这看起来很简单。一旦RecyclerView适配器设置正确,它也会更新RecyclerView。您不需要数据列表,只需要要删除的内容的值,例如ID或密钥。@OverridepublicvoidonLongClick(Viewv,inti){mquery.orderByChild("text")。equalTo((String)notes.get(i).getName()).addListenerForSingleValueEvent(newValueEventListener(){publicvoidonDataChange(DataSnapshotdataSnapshot){if(dataSnapshot.hasChildren()){DataSnapshotfirstChild=dataSnapshot.getChildren().iterator().next();firstChild.getRef().removeValue();}}publicvoidonCancelled(FirebaseErrorfirebaseError){}});来自https://www.itbaoku.cn/。大多数时候我只是复制和粘贴。这是一个抽象类,可用于为Firebase数据库制作RecyclerView适配器。所有代码都在那个GitHub存储库中。这是来自Firebase的FirebaseRecyclerAdapter.class的片段,删除了值并更新了recyclerView:@OverridepublicvoidonChildRemoved(DataSnapshotdataSnapshot){如果(mKeys.contains(key)){intindex=mKeys.indexOf(key);Titem=mItems.get(index);mKeys.remove(索引);mItems.remove(索引);notifyItemRemoved(索引);itemRemoved(项目,键,索引);更新:您可以隐藏在RecyclerView适配器视图的Viewholder中。在stackoverflow中查看这些答案在RecyclerView中隐藏视图原文地址:https://www.itbaoku.cn/post/2...