2017-01-03 6 views
0

Ich bin neu in Android-Entwicklung. Wie kann ich nur eine Optionsschaltfläche von RecyclerView auswählen. Ich habe eine RecyclerView und Cartview Layout, die einzigen Artikel für RecyclerView ist. Ich habe einen Radioknopf im Warenkorb-Layout. Ich möchte in recylerview nur einen einzigen Radio Button auswählen. Wie kann ich das erreichen?Wählen Sie nur einen Radiobutton in RecyclerView

Hier ist mein Adapter Code

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) { 
       } 
      }); 
     } 
    } 
} 

Antwort

0

Sie können einfach versuchen, den Prüfzustand des Optionsfelds Einstellung in onCheckedChangeListener Rückruf dieser Schaltfläche mit der boolean b.

1

Funktioniert der Code einwandfrei?

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; 
 
     } 
 
    });

Verwandte Themen