我有listview,有两个textviews和一个复选框。我正在使用自定义适配器来填充列表视图。
我想根据listitem的位置选中/取消选中listview特定列表项的复选框。 例如:如果我想检查列表视图第二项的复选框,我该怎么做?
答案 0 :(得分:2)
您必须使用getview()
方法执行此操作。
来自vogella的示例代码
@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.yourlayout, null);
final ViewHolder viewHolder = new ViewHolder();
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.checkbox.setChecked(list.get(position).isSelected());
return view;
}
}
有关详细信息,请参阅here。
我希望这会对你有所帮助。