如何激活列表活动中的复选标记?

bma*_*oat 2 android listactivity android-arrayadapter checkmark

我有一个ListActivity,其数组适配器声明为像arrayAdapter = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_checked);这样在最右边显示了一堆带有复选标记的行.你能告诉我如何获得这些复选标记的引用或如何检查/取消选中它们吗?

Bri*_*ley 8

CheckedTextView本身处理复选框.它作为onListItemClick处理程序中的第二个参数(View v)传入.因此,您可以按如下方式简化代码:

@Override
protected void onListItemClick( ListView l, View v, int position, long id)
{
  CheckedTextView textView = (CheckedTextView)v;
  textView.setChecked(!textView.isChecked());
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,使用`l.setItemChecked(position,!l.isItemChecked(position))可能更有意义;`如果列表视图扩展了`Checkable`!(他们为android.R.layout.simple_list_item_checked做了.)如果你只检查`CheckedTextView`,它不会更新底层数据,例如isItemChecked()不会改变. (2认同)