嗨,我正在创建一个带有动态复选框的自定义列表视图,添加了我想要的内容,但是当我尝试在第一行中选择一个复选框时,自动选择第 5、9、13 行中的第一个按钮,当我选择时第二行中的任何按钮然后第 6、8、12 行中的相同按钮被选中我在这里做错了什么和我的适配器类
class listViewEventscustomAdapter extends BaseAdapter {
LayoutInflater mInflater;
ViewHolder holder;
public listViewEventscustomAdapter(Context context) {
mInflater = LayoutInflater.from(context);
}
public int getCount() {
if (arrListViewoption_title != null) {
return arrListViewoption_title.size();
} else {
Toast.makeText(getApplicationContext(), "No item found",
Toast.LENGTH_LONG).show();
return 0;
}
}
public Object getItem(int arg0) {
return arg0;
}
public long getItemId(int arg0) {
return arg0;
}
@SuppressWarnings("unchecked")
public View getView(final int position, View convertView,
ViewGroup parent) {
View v = convertView;
final CheckBox checkitem;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.customlistviewdata, null);
}
if (v != null) {
holder = new ViewHolder();
holder.txtoptiontitle = (TextView) v
.findViewById(R.id.optiontitle);
holder.txtsubtitle = (TextView) v.findViewById(R.id.subtitle);
checkitem = (CheckBox) v.findViewById(R.id.checkBox1);
holder.btn_radio = (RadioButton) v
.findViewById(R.id.radio0);
holder.txtoptiontitle.setText(arrListViewoption_title
.get(position));
holder.txtsubtitle.setText(arrlistViewsub_title.get(position));
if (value.equals(arrListViewoption_type.get(position)
.toString().trim())) {
checkitem.setVisibility(View.VISIBLE);
holder.btn_radio.setVisibility(View.GONE);
}
else {
holder.btn_radio.setVisibility(View.VISIBLE);
checkitem.setVisibility(View.GONE);
}
checkitem
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton view,
boolean isChecked) {
// int getPosition = (Integer) view.getTag();
// list.get(getPosition).setSelected(view.isChecked());
if (view.isChecked()) {
checkboxvalue.add(arrlistViewsub_title
.get(position).toString().trim());
} else {
System.out
.println("*************unchecked");
checkboxvalue.remove(arrlistViewsub_title
.get(position).toString().trim());
adapter_list.notifyDataSetChanged();
}
Log.i(this.toString(),
"Item" + checkboxvalue.size());
}
});
holder.btn_radio
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(
CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if (buttonView.isChecked()) {
// Action Doing here
}
}
});
v.setTag(holder);
}
return v;
}
}