我有一个适配器,它使用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。

10-07 12:40