在ListView中设置最初检查的CheckedTextViews for choiceMode ="multipleChoice"

Cor*_*ant 1 android

我正在努力尝试使用android的ListView multipleChoice模式.这是我想要做的:

我在游戏设置屏幕中有一个"玩家"按钮.单击它时,它会打开另一个活动,其中包含CheckedTextViews中数据库中所有玩家的multipleChoice ListView.我有这个工作正常,当你点击一个播放器时,他们将通过查询添加到游戏中或从游戏中移除到game_players表.

我遇到的问题是设置ListView,以便在活动打开时最初检查已添加到游戏中的玩家.

我试图通过遍历ListView活动中的整个列表来执行此操作,但这不起作用,因为无法访问当前不可见的视图以进行检查.

所以现在我正在尝试在bindView中的扩展SimpleCursorAdapter中执行此操作,但我甚至无法使用这个简单的代码:

@Override
public void bindView(View _view, Context _context, Cursor _cursor) {
    String name = c.getString(c.getColumnIndexOrThrow(from[0]));

    this.player = (CheckedTextView)_view.findViewById(to[0]);
    this.player.setText(name);
    this.player.setChecked(true);
}
Run Code Online (Sandbox Code Playgroud)

它使用setText()正确设置了播放器的名称,但是我无法在bindView中检查任何框.还有其他地方我应该这样做,还是我只是做错了?

Com*_*are 7

呼吁setItemChecked()ListView每个检查位置.

  • @ and-dev:"为什么ListAdapter上的"getView()"中的"setChecked(true)"失败?" - 如果你选择`multipleChoice`,你将`Checkable`的控制权移交给`ListView`.如果您愿意,欢迎您不要使用`multipleChoice`并自行管理`Checkable`.如果你的行除了`Checkable`之外还有*其他*,就像`RatingBar`那么你就会这样做.OP询问了'multipleChoice` - 我的回答是针对那个请求的. (3认同)