Java 当按下其中一个按钮时,禁用recyclerView中的其他按钮

Java 当按下其中一个按钮时,禁用recyclerView中的其他按钮,java,android,android-recyclerview,cardview,Java,Android,Android Recyclerview,Cardview,我有一个包含cardView的recyclerView,每个cardView都包含一个按钮。我想在按下一个按钮时禁用其余按钮。我该怎么做 我尝试在列表中添加按钮以禁用它们,但没有成功 这是我的适配器: public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> { private LayoutInflater inflater; List<AgendaInfo> data = C

我有一个包含cardView的recyclerView,每个cardView都包含一个按钮。我想在按下一个按钮时禁用其余按钮。我该怎么做

我尝试在列表中添加按钮以禁用它们,但没有成功

这是我的适配器:

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {

private LayoutInflater inflater;
List<AgendaInfo> data = Collections.emptyList();

public MyAdapter(Context context, List<AgendaInfo> data) {

    inflater = LayoutInflater.from(context);

    this.data = data;

}

private void showAlert(final Context context, String message, final Button btn) {
    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setMessage(message)
            .setTitle("alert")
            .setIcon(R.drawable.alert)
            .setPositiveButton("yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    handleButton(btn, context);
                }
            })
            .setNegativeButton("no", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                }
            })
            .create().show();
}

@Override
public MyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    View view = inflater.inflate(R.layout.cards, parent, false);

    MyViewHolder holder = new MyViewHolder(view);

    return holder;

}

@Override
public void onBindViewHolder(final MyAdapter.MyViewHolder holder, final int position) {

    AgendaInfo current = data.get(position);
    holder.code.setText(current.code);
    holder.order.setText(current.order);
    holder.standardTime.setText(current.standardTime);
    holder.btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            showAlert(holder.code.getContext(), "start No : " + (position + 1), holder.btn);
        }
    });
}

@Override
public int getItemCount() {
    return data.size();
}

class MyViewHolder extends RecyclerView.ViewHolder {

    TextView code;
    TextView order;
    TextView standardTime;
    Button btn;

    public MyViewHolder(final View itemView) {
        super(itemView);
        code = (TextView) itemView.findViewById(R.id.tv_card_code);
        order = (TextView) itemView.findViewById(R.id.tv_card_order_count);
        standardTime = (TextView) itemView.findViewById(R.id.tv_card_standard_time);
        btn = (Button) itemView.findViewById(R.id.btn_card);

    }

}

public void handleButton(final Button btn, final Context c)
{

    btn.setBackgroundColor(c.getResources().getColor(R.color.colorLightGreen));
    btn.setText("discard");

    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            btn.setText("started");
            btn.setBackgroundColor(c.getResources().getColor(R.color.colorGray));
            btn.setEnabled(false);
        }
    }, 2000);
}

}
公共类MyAdapter扩展了RecyclerView.Adapter{ 私人充气机; List data=Collections.emptyList(); 公共MyAdapter(上下文、列表数据){ 充气器=充气器。从(上下文); 这个数据=数据; } 私有void showAlert(最终上下文上下文、字符串消息、最终按钮btn){ AlertDialog.Builder=新建AlertDialog.Builder(上下文); builder.setMessage(消息) .setTitle(“警报”) .setIcon(R.drawable.alert) .setPositiveButton(“是”,新的DialogInterface.OnClickListener(){ @凌驾 public void onClick(DialogInterface dialog,int which){ 把手按钮(btn,上下文); } }) .setNegativeButton(“否”,新的DialogInterface.OnClickListener(){ @凌驾 public void onClick(DialogInterface dialog,int which){ } }) .create().show(); } @凌驾 public MyAdapter.MyViewHolder onCreateViewHolder(视图组父级,int-viewType){ 视图=充气机。充气(R.layout.cards,父级,false); MyViewHolder=新的MyViewHolder(视图); 报税表持有人; } @凌驾 public void onBindViewHolder(最终MyAdapter.MyViewHolder,最终int位置){ AgendaInfo current=data.get(位置); holder.code.setText(当前的.code); holder.order.setText(当前订单); holder.standardTime.setText(当前的.standardTime); holder.btn.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ showAlert(holder.code.getContext(),“开始编号:”+(位置+1),holder.btn); } }); } @凌驾 public int getItemCount(){ 返回data.size(); } 类MyViewHolder扩展了RecyclerView.ViewHolder{ 文本视图代码; 文本视图顺序; 文本视图标准时间; 按钮btn; 公共MyViewHolder(最终视图项视图){ 超级(项目视图); 代码=(TextView)itemView.findViewById(R.id.tv\U卡\U代码); order=(TextView)itemView.findViewById(R.id.tv\u card\u order\u count); standardTime=(TextView)itemView.findViewById(R.id.tv\U卡\U标准\U时间); btn=(按钮)itemView.findViewById(R.id.btn\U卡); } } 公共无效把手按钮(最终按钮btn,最终上下文c) { btn.setBackgroundColor(c.getResources().getColor(R.color.colorLightGreen)); btn.setText(“放弃”); 最终处理程序=新处理程序(); handler.postDelayed(新的Runnable(){ @凌驾 公开募捐{ btn.setText(“已启动”); btn.setBackgroundColor(c.getResources().getColor(R.color.colorGray)); btn.setEnabled(false); } }, 2000); } } 任何帮助都将不胜感激