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; 
}