我有ViewBinder
作为我的ListView
和数据库游标适配器之间的中间人。根据显示的数据的上下文,我需要ViewBinder
做不同的事情。
例如,使用任务管理应用程序,即为所有存在的任务组显示任务。也许在这种情况下,应用程序希望在列表视图中显示任务组的名称,如果它不显示任何特定任务组之一的任务。列表视图项可以有一个隐藏字段,ViewBinder
可用于将任务组的名称映射到字段,并在必要时将其设置为可见(按照主应用程序的指示)。
我的问题是如何告诉ViewBinder
它正在显示的上下文,以便它可以确定如何表现?
我意识到这可以通过实现许多不同的ViewBinders
来完成,但是这需要复制很多代码,并且更愿意使用单个ViewBinder
来执行它,我只是将某些参数传递给
答案 0 :(得分: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;
}