2

ListView과 데이터베이스에 대한 커서 어댑터 사이의 중개자 역할을 수행하는 ViewBinder이 있습니다. 이 데이터가 표시되는 컨텍스트에 따라 다른 작업을 수행하려면 ViewBinder이 필요합니다.ViewBinder에 변수 전달하기

예를 들어, 존재하는 모든 태스크 그룹에 대한 태스크를 표시하는 태스크 관리 어플리케이션을 선택하십시오. 어쩌면이 경우 응용 프로그램은 특정 작업 그룹 중 하나에 대한 작업을 표시하고 싶지 않을 때 목록보기에서 작업 그룹의 이름을 표시하려고합니다. 목록보기 항목에는 숨김 필드가있을 수 있으며 ViewBinder을 사용하여 작업 그룹의 이름을 필드에 매핑하고 필요시 (주 응용 프로그램에 지시 된대로) 표시하도록 설정할 수 있습니다.

제 질문은 어떻게 표시 할 문맥을 ViewBinder에게 알려주므로 어떻게 행동 할 것인지 결정할 수 있습니다.

많은 ViewBinders을 구현하여이 작업을 수행 할 수 있지만 실현하려면 많은 코드가 필요하며 특정 매개 변수를 전달하는 단일 ViewBinder을 사용하는 것이 좋습니다.

답변

2

구현중인 ViewBinder의 생성자를 구현하면됩니다. 예 당

, 하나는 같은 것을 할 수 있습니다

private Boolean displayGroupName = true; 

public ToDoViewBinder(Boolean displayGroupName) { 
    this.displayGroupName = displayGroupName; 
} 

@Override 
public boolean setViewValue(View view, Cursor c, int columnIndex) { 

    if(displayGroupName) 
    { 
     //Do necessary stuff 
     return true; 
    } 
    else 
     return false; 
}