【发布时间】:2013-04-12 03:51:02
【问题描述】:
我一遍又一遍地搜索这个问题,我在stackoverflow中发现了很多问题,但我没有想出解决方案。这是我的问题。 我在这样的线性布局中有一个项目列表:
当屏幕首先出现时,会自动选择最后一个单选按钮。但是如果我选择另一个单选按钮,最后一个单选按钮已经处于选中状态。我只想选择一个单选按钮,但同时当屏幕首先出现时,最后一个单选按钮将被自动选择,而其他单选按钮将不会被选择。 我怎样才能做到这一点。 我的适配器类是:
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;
}
}
【问题讨论】:
-
我也遇到了同样的问题,你能帮我吗,但在复选框中
标签: android listview radio-button