我认为您是在询问动态列表视图,其列表单元格中带有复选框。
首先,您需要一个适配器来填写您的列表...像这样..
ListView listView=(ListView)findViewById(R.id.listView);
listView.setAdapter(new MyListAdapter (<Your ArrayList>));
现在,当我们在列表中使用复选框或编辑框时。然后当我们滚动列表时,它每次都会调用它的 getview 方法。所以我们需要管理组件的价值或状态。在这里管理复选框的状态,我使用了布尔类型的 Arraylist。
为列表的单元格制作一个 XML 文件。将列表单元组件的侦听器放在 getview 方法中。
public class MyListAdapter extends BaseAdapter
{
private ArrayList<HashMap<String, String>> data;
private ArrayList<Boolean> checks=new ArrayList<Boolean>();
public MyListAdapter ( ArrayList<HashMap<String, String>> d)
{
data=d;
inflater = (LayoutInflater)baseActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
for (int i = 0; i < d.size(); i++)
{
checks.add(i, false);//as first no check box is checked. So fill it with false value
}
}
public int getCount()
{
return data.size();
}
public Object getItem(int position)
{
return position;
}
public long getItemId(int position)
{
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{
View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.list_row, null);
name = (TextView)vi.findViewById(R.id.name);// name
checkBox=(CheckBox)vi.findViewById(R.id.check_box);
email_id = (TextView)vi.findViewById(R.id.e_mail_id); // email ID
mobile_no = (TextView)vi.findViewById(R.id.mobile_no); // mobile
checkBox.setTag(Integer.valueOf(position));
checkBox.setOnClickListener(this);
checkBox.setChecked(checks.get(position));
name.setText(<set name form any data source>);
email_id.setText(<set emailid form any data source>);
mobile_no.setText(<set mobile form any data source>);
return vi;
}
}
希望这对您有所帮助。干杯...