Ho cercato la domanda più e più volte, ci sono molte domande che ho trovato nello stackoverflow ma non ho trovato una soluzione. Ecco il mio problema Ho una lista di elemento in un LinearLayout come questo: Solo selezionare un solo pulsante di opzione da listview
Quando lo schermo viene prima, il pulsante dell'ultima Radion viene selezionata automaticamente. Ma se seleziono un altro pulsante radio, l'ultimo pulsante radio è già nello stato selezionato. Voglio selezionare solo un pulsante di radion ma allo stesso tempo quando viene visualizzato lo schermo, l'ultimo pulsante radio verrà selezionato automaticamente e gli altri automaticamente non verranno selezionati. Come posso ottenere questo. La mia classe adattatore è:
public class AdapterPaymentMethod extends ArrayAdapter<PaymentData> {
private Context context;
private boolean userSelected = false;
ViewHolder holder;
public AdapterPaymentMethod(Context context, int resource,
List<PaymentData> items) {
super(context, resource, items);
this.context = context;
}
/* private view holder class */
private class ViewHolder {
RadioButton radioBtn;
Button btPaymentMethod;
// ImageView ivLine;
}
public View getView(final int position, View convertView, ViewGroup parent) {
holder = null;
PaymentData rowItem = getItem(position);
LayoutInflater mInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = mInflater.inflate(
com.android.paypal.homeactivity.R.layout.list_item, null);
holder = new ViewHolder();
holder.radioBtn = (RadioButton) convertView
.findViewById(com.android.paypal.homeactivity.R.id.rdb_payment_method);
holder.btPaymentMethod = (Button) convertView
.findViewById(com.android.paypal.homeactivity.R.id.bt_item_event);
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
if(position==getCount()-1 && userSelected==false){
holder.radioBtn.setChecked(true);
Log.d("if position", ""+position);
}
else{
holder.radioBtn.setChecked(false);
Log.d("else position", ""+position);
}
holder.radioBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
userSelected=true;
if(getCount()-1==position&&userSelected==true){
}
else if(getCount()-2==position&&userSelected==true)
{
holder.radioBtn.setChecked(true);
}
}
});
holder.radioBtn.setText(rowItem.getRdbText());
holder.btPaymentMethod.setText(rowItem.getBtText());
return convertView;
}
}
im bloccato anche su stessi problemi possono u mi aiuterà, ma in casella di controllo –