我有带两个textviews和一个复选框的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

我希望这能帮到您。

10-08 08:53
查看更多