正在检查所有单选按钮

时间:2017-09-07 19:37:02

标签: android

正在检查所有单选按钮,我只想在单击下一个按钮时检查一个按钮,取消选中其他按钮。我正在使用recyclerview 当我点击下一个时,我怎么能取消选中其他人。 ?

这是我的适配器。

import java.util.List;


/**
 * Created by Alex Boey on 8/1/2016.
 */
public class AllAccountsAdapter extends RecyclerView.Adapter<AllAccountsAdapter.ViewHolder> {



    private Context context;

    private List<AllAccount> mList;

    public AllAccountsAdapter(Context context , List<AllAccount> mList){
        this.context = context;
        this.mList =mList;
    }

    public  class ViewHolder extends RecyclerView.ViewHolder{

        RadioButton account_no;

        public ViewHolder(View itemView) {
            super(itemView);
            account_no = (RadioButton) itemView.findViewById(R.id.account_no);
        }
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.item_all_account ,parent , false);

        ViewHolder vh = new ViewHolder(view);

        return vh;
    }

    @Override
    public void onBindViewHolder(final ViewHolder holder, final int position) {
      final AllAccount list=mList.get(position);
      holder.account_no.setText(list.getAccountNumber());
        holder.account_no.setChecked(false);

      holder.account_no.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
          @Override
          public void onCheckedChanged(CompoundButton compoundButton, boolean b) {

              if(context instanceof MyAccount){
                  ((MyAccount)context).onRefresh(list.getAccountNumber());
              }
          }
      });
    }

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


}

这是我的项目xml,带有一个正在使用的单选按钮。

    <?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView android:id="@+id/clickable"
    android:clickable="true"
    android:foreground="?android:attr/selectableItemBackground"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    card_view:cardUseCompatPadding="true"
    card_view:cardCornerRadius="3dp"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <RadioButton
            android:textColor="@color/theme_color_primary_dark"
            android:padding="10dp"
            android:id="@+id/account_no"
            android:text="@string/accept"
            android:layout_gravity="center"
            style="@style/Widget.AppCompat.CompoundButton.RadioButton"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            >
        </RadioButton>
    </RadioGroup>



    </android.support.v7.widget.CardView>

enter image description here

1 个答案:

答案 0 :(得分:0)

因为每张卡片视图都定义了自己的无线电组。对于卡片视图中的无线电组没有本机支持,您必须在选中其中任何一个时手动取消选中其他视图,或者您可以尝试将整个卡片组列表内容放入广播组中