我有带有两个 TextView 和一个复选框的 ListView 。我正在使用自定义适配器来填充 ListView 。
我想根据列表项的位置选中/取消选中 ListView 的特定列表项的复选框。 例如:如果我想选中 ListView 第二项的复选框,我该怎么做?
最佳答案
您必须在 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 .
希望这对您有帮助。
关于android - 以编程方式选中/取消选中 ListView 内的复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16358026/