从FirebaseRecyclerAdapter中隐藏一个值

问题描述:

我正在创建一个类似于聊天app.Now的应用程序,我不希望当前用户当前登录设备的帐户显示在FirebaseRecyclerAdapter结果列表中。我是当前用户的UID。现在我想从Adapter中只过滤这个当前的UID。它可能如何? 在此先感谢。从FirebaseRecyclerAdapter中隐藏一个值

这里是我的FirebaseRecyclerAdapter代码

 FirebaseRecyclerAdapter<Donors, DonorsViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Donors, DonorsViewHolder>(
      Donors.class, 
      R.layout.donors_single_layout, 
      DonorsViewHolder.class, 
      mUsersDatabase.orderByChild("search").equalTo(searchKey) 
    ) { 

     @Override 
     protected void populateViewHolder(DonorsViewHolder viewHolder, Donors model, int position) { 

      viewHolder.setName(model.getName()); 
      viewHolder.setLocation(model.getLocation()); 
      viewHolder.setImage(model.getThumb_image(), getApplicationContext()); 
      viewHolder.setGroup(model.getGroup()); 

      final String donorID = getRef(position).getKey(); 

      //WANTED TO HIDE THIS WAY BUT THAT DOESN"T WORK :( 
      if(donorID == mCurrentUserId){ 
       viewHolder.setIsRecyclable(false); 
       return; 
      } 

     } 
    }; 

    mDonorsList.setAdapter(firebaseRecyclerAdapter); 
    firebaseRecyclerAdapter.notifyDataSetChanged(); 
+0

你只想隐藏或删除? –

+0

我只想隐藏先生。不需要从数据库中删除当前用户 –

+0

请参阅https://*.com/questions/41223413/how-to-hide-an-item-from-recycler-view-on-a-particular-condition –

试试这个

viewHolder.setVisibility(View.INVISIBLE); 

代码是这样的:

if(donorID == mCurrentUserId){ 
       viewHolder.setIsRecyclable(false); 
       viewHolder.setVisibility(View.INVISIBLE); 
       return; 
      } 

或者

viewHolder.setVisibility(View.GONE); 

所以代码是这样的:

if(donorID == mCurrentUserId){ 
        viewHolder.setIsRecyclable(false); 
        viewHolder.setVisibility(View.GONE); 
        return; 
       } 

这一点,如果作品隐藏ItemView控件

+0

对不起。 .. .setVisibility(View.INIVISIBLE)不适用于您的时间为viewHolder.Thanks –

+0

添加时会发生什么? @WalidAlAshik –

+0

尝试我的第二种方式。 @WalidAlAshik –