Java 当按下其中一个按钮时,禁用recyclerView中的其他按钮
我有一个包含cardView的recyclerView,每个cardView都包含一个按钮。我想在按下一个按钮时禁用其余按钮。我该怎么做 我尝试在列表中添加按钮以禁用它们,但没有成功 这是我的适配器: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
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);
}
}
任何帮助都将不胜感激