我有一个适配器,它使用CheckedTextView
并从SimpleCursorAdapter
扩展。我试图加载CheckTextView
的默认值,但没有成功。我不知道这是CheckedTextView
的行为还是我做错了什么。
我试过什么?
我试图重写getView()
方法并获取CheckedTextView
视图并使用setChecked(boolean)
,但失败了,奇怪的是它不起作用。
然后我尝试使用ViewBinder
,但这也不起作用。
对这个问题有什么见解吗?
adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
public boolean setViewValue(View view, Cursor cursor,
int columnIndex) {
CheckedTextView cb = (CheckedTextView) view;
int checked=cursor.getInt(cursor.getColumnIndex(ProgramSurvey.CHECKED));
cb.setChecked(checked==1);
return false;
}
});
最佳答案
如果从getview返回的视图是checkedtextview(或实现checkable的任何其他视图),那么listview将根据它认为被选中的行(从对setitemchecked的调用)在相关行上设置checked。您需要告诉listview哪些行被选中,而不是尝试自己设置,或者将视图包装到一个不实现checkable的视图中,然后您就可以在checkedtextview中设置checked yourself。