2017-01-03 19 views
0

私はアンドロイド開発で新しくなりました。 RecyclerViewからラジオボタンを1つだけ選択する方法 RecyclerViewの場合はRecyclerViewとcartviewレイアウトが1つあります。私はカートのレイアウトに1つのラジオボタンを持っています。 recylerviewでラジオボタンを1つだけ選択したいどうすればこれを実現できますか?RecyclerViewでラジオボタンを1つだけ選択してください。

は、ここに私のアダプタコード

public class CardviewAdapterDateTimeLocation extends RecyclerView.Adapter<CardviewAdapterDateTimeLocation.ViewHolder> { 

private Context mContext; 
public int lastCheckedPosition = 2; 

private static ArrayList<AdressAcivity_cardview_getter_setter> dataSet; 
public CardviewAdapterDateTimeLocation(ArrayList<AdressAcivity_cardview_getter_setter> os_versions) { 

     dataSet = os_versions; 
    } 

    @Override 
    public CardviewAdapterDateTimeLocation.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 

     final View itemLayoutView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cardview_datetimelocation_activity, null); 
     CardviewAdapterDateTimeLocation.ViewHolder viewHolder = new CardviewAdapterDateTimeLocation.ViewHolder(itemLayoutView); 

     return viewHolder; 
    } 

    @Override 
    public void onBindViewHolder(final CardviewAdapterDateTimeLocation.ViewHolder viewHolder, final int i) { 

     AdressAcivity_cardview_getter_setter fp = dataSet.get(i); 
     viewHolder.addressline1.setText(fp.getAddressline1()); 
     viewHolder.addressline2.setText(fp.getAddressline2()); 
     viewHolder.addressline3.setText(fp.getAddressline3()); 

     viewHolder.mRemoveButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       String itemLabel = dataSet.get(i).toString(); 
       dataSet.remove(i); 
       notifyItemRemoved(i); 
       notifyItemRangeChanged(i,dataSet.size()); 
      } 
     }); 
     viewHolder.editbtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

      } 

     }); 
     viewHolder.selectaddress.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton compoundButton, boolean b) { 
      } 
     }); 
     viewHolder.feed = fp; 
    } 

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

    public static class ViewHolder extends RecyclerView.ViewHolder { 

     public TextView addressline1; 
     public TextView addressline2; 
     public TextView addressline3; 
     public ImageView mRemoveButton,editbtn; 
     public static RadioButton selectaddress; 
     public AdressAcivity_cardview_getter_setter feed; 

     public ViewHolder(View itemLayoutView) { 
      super(itemLayoutView); 

      addressline1= (TextView)itemLayoutView.findViewById(R.id.datetime_gridview_addressline1) ; 
      addressline2 =(TextView)itemLayoutView.findViewById(R.id.datetime_gridview_addressline2); 
      addressline3= (TextView) itemLayoutView.findViewById(R.id.datetime_gridview_addressline3); 
      mRemoveButton=(ImageView)itemLayoutView.findViewById(R.id.datetime_gridveiw_deletebtn); 
      editbtn=(ImageView)itemLayoutView.findViewById(R.id.datetime_gridveiw_editbtn); 
      selectaddress=(RadioButton)itemLayoutView.findViewById(R.id.selectaddress); 

      itemLayoutView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
       } 
      }); 
     } 
    } 
} 

答えて

0

あなたは単にブール値bを使用して、そのボタンのonCheckedChangeListenerコールバックでラジオボタンのチェック状態を設定してみることです。

1

コードは問題なく動作していますか。

private RadioButton lastCheckedRB = null; 
 
... 
 
@Override 
 
public void onBindViewHolder(final CoachListViewHolder holder, final int position) { 
 
    holder.priceRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
 
     @Override 
 
     public void onCheckedChanged(RadioGroup group, int checkedId) { 
 
      RadioButton checked_rb = (RadioButton) group.findViewById(checkedId); 
 
      if (lastCheckedRB != null) { 
 
       lastCheckedRB.setChecked(false); 
 
      } 
 
      //store the clicked radiobutton 
 
      lastCheckedRB = checked_rb; 
 
     } 
 
    });

関連する問題