ListView启用checkedTextView异常

时间:2012-03-15 08:04:07

标签: android listview

我有一个包含20个项目的列表视图,使用android.R.layout.simple_list_item_multiple_choice作为textview布局,它使用CheckedTextView。我希望在选中时选中复选框,通过以下方式进行检查:

public void onListItemClick(ListView parent, final View v, int pos, long id) {
    ((CheckedTextView) v).setChecked(true);
}

然而,当我这样做时,不仅要检查特定的checkedtextview,还要检查其他几个。

2 个答案:

答案 0 :(得分:0)

试试这个 -

((CheckedTextView)parent.getChildAt(pos)).setChecked(true);

答案 1 :(得分:0)

您可以通过创建自定义适配器来实现此目的。你需要做的就是 创建一个扩展BaseAdapter类的新类。

为了使用您正在使用的布局,您需要修改 getView method.below是片段

public View getView(int position,View convertView,ViewGroup parent)    {      ViewHolder holder;

 if (convertView == null) 
 {
   convertView = mInflater.inflate(android.R.layout.simple_list_item_multiple_choice, null);

    holder = new ViewHolder();
    holder.checkbox = (CheckedTextView) convertView.findViewById(android.R.id.text1);

    convertView.setTag(holder);
 } 
 else
 {
    holder = (ViewHolder) convertView.getTag();
 }

  holder.checkbox.setText(tasks.get(position).getName());
  holder.checkbox.setChecked(tasks.get(position).isCompleted());

  return convertView;

}

static class ViewHolder {
  CheckedTextView checkbox;

}

希望这对你有所帮助。