我有一个自定义列表视图,每行都包含一个复选框和文本。现在我想要的是,如果任何一个listview行的复选框被选中,所以其他行中的其他行复选框会被自动选中(即一次只能选择一个复选框)。我应该怎么做。只有一个复选框的自定义列表视图被一次选中一个
到目前为止,我所做的是:
public class CustomAdapter extends BaseAdapter{
Context context;
List<String> items;
boolean array[];
public CustomAdapter(Context context, List<String> items) {
super();
this.context = context;
this.items = items;
array =new boolean[items.size()];
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return items.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return items.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View v=convertView;
final int pos=position;
if(v==null)
{
v=LayoutInflater.from(context).inflate(R.layout.list,null);
}
TextView txt1=(TextView) v.findViewById(R.id.textView1);
final CheckBox chkbox=(CheckBox) v.findViewById(R.id.checkBox1);
txt1.setText(items.get(position));
int selectedindexitem=0;
chkbox.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(chkbox.isChecked())
{
array[pos]=true;
}else{
array[pos]=false;
}
}
});
chkbox.setChecked(array[pos]);
return v;
}
}
In this code i can select multiple checkbox at a time but i need only one checkbox should be checked one at a time.
由于您在视图中使用复选框而不是在listview中使用复选框,因此应手动取消选中它们。为此,你需要保留一个你已经选择的参考,而不是。 – 2014-11-24 12:49:54
一个非常简单的方法就是用RadioButton替换你的CheckBox,并确保所有的RadioButton都在同一个RadioGroup中。 – 2014-11-24 13:14:25
我不能使用radiogroup – abh22ishek 2014-11-24 13:19:02