Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何根据Firebase上的字段控制按钮的可见性_Android_Firebase_Button_Android Recyclerview_Google Cloud Firestore - Fatal编程技术网

Android 如何根据Firebase上的字段控制按钮的可见性

Android 如何根据Firebase上的字段控制按钮的可见性,android,firebase,button,android-recyclerview,google-cloud-firestore,Android,Firebase,Button,Android Recyclerview,Google Cloud Firestore,我正在尝试在我的应用程序中创建奖励页面。如果用户在my Firebase中的字段数小于或等于字段数,则项目按钮将可用。物品本身包含用户要求获得奖励的要求 下面,我无法申请最后一笔奖励,因为它需要20,而用户只有12,在这里,是指献血量。如何使最后一次奖励的按钮对用户不可见 相关图片: 我的火力基地: 我的适配器 public class RewardAdapter extends FirestoreRecyclerAdapter<RewardModel, RewardAdapter.R

我正在尝试在我的应用程序中创建奖励页面。如果用户在my Firebase中的
字段数
小于或等于
字段数,则项目按钮将可用。物品本身包含用户要求获得奖励的要求

下面,我无法申请最后一笔奖励,因为它需要
20
,而用户只有
12
,在这里,是指献血量。如何使最后一次奖励的
按钮对用户不可见

相关图片:

我的火力基地:

我的适配器

public class RewardAdapter extends FirestoreRecyclerAdapter<RewardModel, RewardAdapter.RewardViewHolder> {

public RewardAdapter(@NonNull FirestoreRecyclerOptions<RewardModel> options) {
    super(options);
}

@Override
protected void onBindViewHolder(@NonNull RewardAdapter.RewardViewHolder holder, int position, @NonNull RewardModel model) {
    holder.rank.setText(String.valueOf(position + 1));
    Double dq = model.getDonationReq();
    holder.donationRequired.setText(String.format("%.0f", dq));
    holder.rewardDescription.setText(model.getRewardDesc());

    holder.claim_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //
        }
    });
}

@NonNull
@Override
public RewardAdapter.RewardViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(com.example.loginregisterfire.R.layout.list_rewards_single, parent, false);
    return new RewardViewHolder(view);
}

public class RewardViewHolder extends RecyclerView.ViewHolder {

    TextView rank;
    TextView donationRequired;
    TextView rewardDescription;
    Button claim_btn;

    public RewardViewHolder(@NonNull View itemView) {
        super(itemView);

        rank = itemView.findViewById(R.id.rewards_rank);
        donationRequired = itemView.findViewById(R.id.single_reward_amount);
        rewardDescription = itemView.findViewById(R.id.single_reward_desc);
        claim_btn = itemView.findViewById(R.id.claim_btn);
    }
}
}
公共类RewardAdapter扩展FirestoreRecyclerAdapter{
公共报酬适配器(@NonNull FirestoreRecyclerOptions选项){
超级(期权);
}
@凌驾
BindViewHolder上受保护的无效(@NonNull RewardAdapter.RewardViewHolder holder,int位置,@NonNull RewardModel模型){
holder.rank.setText(String.valueOf(position+1));
Double dq=model.getDonationReq();
holder.donationRequired.setText(String.format(“%.0f”,dq));
holder.rewardDescription.setText(model.getRewardDesc());
holder.claim\u btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
//
}
});
}
@非空
@凌驾
public RewardAdapter.RewardViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int-viewType){
View View=LayoutInflater.from(parent.getContext()).flate(com.example.loginregisterfire.R.layout.list\u rewards\u single,parent,false);
返回新的RewardViewHolder(视图);
}
公共类RewardViewHolder扩展了RecyclerView.ViewHolder{
文本视图等级;
需要文本视图;
文本视图报酬描述;
按钮索赔;
公共RewardViewHolder(@NonNull View itemView){
超级(项目视图);
排名=itemView.findViewById(R.id.rewards\U排名);
donationRequired=itemView.findViewById(R.id.单项奖励金额);
rewardDescription=itemView.findViewById(R.id.single\u reward\u desc);
claim\u btn=itemView.findviewbyd(R.id.claim\u btn);
}
}
}

通过将用户值与20进行比较,可以在
onBindViewHolder()中切换按钮可见性

@Override
protected void onBindViewHolder(@NonNull RewardAdapter.RewardViewHolder holder, int position, @NonNull RewardModel model) {
    holder.rank.setText(String.valueOf(position + 1));
    Double dq = model.getDonationReq();
    holder.donationRequired.setText(String.format("%.0f", dq));
    holder.rewardDescription.setText(model.getRewardDesc());
    
    holder.claim_btn.setVisibility(dq >= 20 ? View.VISIBLE : View.GONE); // <<< Here is the change
    
    holder.claim_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // 
        }
    });
}
@覆盖
BindViewHolder上受保护的无效(@NonNull RewardAdapter.RewardViewHolder holder,int位置,@NonNull RewardModel模型){
holder.rank.setText(String.valueOf(position+1));
Double dq=model.getDonationReq();
holder.donationRequired.setText(String.format(“%.0f”,dq));
holder.rewardDescription.setText(model.getRewardDesc());

holder.claim_btn.setVisibility(dq>=20?View.VISIBLE:View.GONE);//非常感谢!