사용자 정의 레이아웃에 5 개의 자식 View
개체 (4 TextView
및 1 CheckBox
)가있는 사용자 지정 레이아웃을 사용하는 ListView
이 있습니다. 그러나 TextViews
만 바인딩됩니다. CheckBox
에는 데이터베이스에 해당 필드가 없습니다. CheckBox
의 목적은 단순히 "다음 단계"에서 처리하고 싶은 항목을 식별하는 것입니다. DB 값의 일부가 날짜 등 때문에 텍스트 값을 올바르게 지정하기 위해 사용자 정의 ViewBinder
을 사용하고 있습니다.ListView의 모든 항목에 대해 바인딩되지 않은 자식보기를 업데이트하는 방법은 무엇입니까?
사용자 인터페이스의 일부에는 목록의 각 항목의 상태를 전환하는 데 사용하는 '모두', '없음'및 '뒤집기'버튼이 있습니다. '모든'버튼의 경우, 예를 들어, 나는 다음과 같은 코드를 사용하여이 작업을 수행 할 (내가 지금 알고 정확하지 - 내가 할 노력하고있어 보여 그것을 포함)이 잘 작동
ListAdapter la = getListAdapter();
ListView lv = getListView();
int iCount = la.getCount();
for(int i=0; i<iCount; i++)
{
View vv = lv.getChildAt(i);
CheckBox cb = (CheckBox) vv.findViewById(R.id.ledgerItemCheckBox);
cb.setChecked(true);
}
목록의 항목 수가 목록 크기를 초과하지 않는 한 모든 항목이 항상 표시됩니다. 이 숫자를 초과하면 'getChildAt'함수가 null을 반환하는 경우가 있는데 (정확하게 이해할 경우) 목록에있는 모든 항목을 반환하지 않고 표시되는 항목 만 반환하기 때문에 (NullPointerException
) .
표시되지 않는 경우에도 모든 뷰에 대해 CheckBox
을 올바르게 설정하는 방법은 무엇입니까?
SimpleAdapter 또는 SimpleCursorAdapter를 사용하고 있습니까? –
SimpleCursorAdapter –