如何清除 ListActivity 中的所有复选框 - 或者如何访问每个显示的行?

问题描述 投票:0回答:1

我使用 ListActivity 创建带有复选框的行。

在最初创建列表后,如何一次性清除或选择所有框?

在 getView 中创建期间,我只有一行:

holder.checkbox.setChecked(false);

但是在 getView 之外创建所有显示的行后,如何访问它们?

这就是我创建每一行的方式:

  @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) {
                XXX element = (XXX) viewHolder.checkbox.getTag();
                element.selectedFlag = buttonView.isChecked() ? Constants.STATUS_SELECTED
                    : Constants.STATUS_UNSELECTED;
            }
            });
        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(false);

    return view;
    }
}

谢谢!

android listactivity
1个回答
1
投票

请参考以下链接:

适合您的完美解决方案

http://www.androiddom.com/2011/02/android-shopping-cart-tutorial.html

参见ProductAdapter类的代码

private boolean mShowCheckbox;

后来:

if(!mShowCheckbox) {
   item.productCheckbox.setVisibility(View.GONE);
  } else {
   if(curProduct.selected == true)
    item.productCheckbox.setChecked(true);
   else
    item.productCheckbox.setChecked(false);
  }
© www.soinside.com 2019 - 2024. All rights reserved.