Tôi đã tìm kiếm nhiều lần câu hỏi, có rất nhiều câu hỏi tôi đã tìm thấy trong stackoverflow nhưng tôi không đưa ra giải pháp. Đây là vấn đề của tôi. Tôi có một danh sách các mục trong linearlayout như sau: Chỉ chọn một nút radio từ listview
Khi màn hình đến trước, nút radion cuối cùng được chọn tự động. Nhưng nếu tôi chọn một nút radio khác, nút radio cuối cùng đã ở trạng thái đã chọn. Tôi muốn chọn chỉ có một nút radion nhưng đồng thời khi màn hình đến trước, nút radio cuối cùng sẽ được tự động chọn và tự động sẽ không được chọn. Làm cách nào để đạt được điều này. lớp bộ chuyển đổi của tôi là:
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 cũng bị mắc kẹt trên các vấn đề cùng u có thể giúp tôi, nhưng trong hộp kiểm –