我正在开发使用具有的复选框列表视图的应用程序,考虑有10 items上list-view项目,默认情况下该复选框被检查,到现在为止,任何东西都工作正常,我在这里是我的问题,当我取消任何入住列表视图中的框整个列表视图需要刷新.
Par*_*ani 13
Nikhil只记得定义一个自定义适配器是一次性练习,一旦你正确定义和理解它,你就可以自定义任何视图,如ListView,GridView,Gallery,Spinner.所以请仔细阅读以下答案.
要使用CheckBox(或任何View)定义ListView,您必须定义自己的自定义适配器.要定义自定义适配器,请执行以下步骤:
在你的情况下,
<RelativeLayout>
<TextView>
<CheckBox>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
public class MyListViewAdapter extends BaseAdapter
{
....
....
static class ViewHolder {
protected TextView text;
protected CheckBox checkbox;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView == null) {
LayoutInflater inflator = context.getLayoutInflater();
view = inflator.inflate(R.layout.rowbuttonlayout, null);
final ViewHolder viewHolder = new ViewHolder();
viewHolder.text = (TextView) view.findViewById(R.id.label);
viewHolder.checkbox = (CheckBox) view.findViewById(R.id.check);
viewHolder.checkbox
.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
Model element = (Model) viewHolder.checkbox
.getTag();
element.setSelected(buttonView.isChecked());
}
});
view.setTag(viewHolder);
viewHolder.checkbox.setTag(list.get(position));
} else {
view = convertView;
((ViewHolder) view.getTag()).checkbox.setTag(list.get(position));
}
ViewHolder holder = (ViewHolder) view.getTag();
holder.text.setText(list.get(position).getName());
holder.checkbox.setChecked(list.get(position).isSelected());
.......
.......
}
Run Code Online (Sandbox Code Playgroud)