2

我有一個ViewBinder,它充當我的ListView和遊標適配器到數據庫之間的中間人。根據這些數據的顯示內容,我需要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; 
}