Android 如何根据Firebase上的字段控制按钮的可见性
我正在尝试在我的应用程序中创建奖励页面。如果用户在my 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
字段数小于或等于字段数,则项目按钮将可用。物品本身包含用户要求获得奖励的要求
下面,我无法申请最后一笔奖励,因为它需要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);//非常感谢!