以编程方式检查/取消选中列表视图中的复选框?

时间:2013-05-03 11:37:26

标签: android listview checkbox

我有listview,有两个textviews和一个复选框。我正在使用自定义适配器来填充列表视图。

我想根据listitem的位置选中/取消选中listview特定列表项的复选框。 例如:如果我想检查列表视图第二项的复选框,我该怎么做?

1 个答案:

答案 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

我希望这会对你有所帮助。