将变量传递给ViewBinder

时间:2011-05-03 18:57:21

标签: android android-listview simplecursoradapter android-viewbinder

我有ViewBinder作为我的ListView和数据库游标适配器之间的中间人。根据显示的数据的上下文,我需要ViewBinder做不同的事情。

例如,使用任务管理应用程序,即为所有存在的任务组显示任务。也许在这种情况下,应用程序希望在列表视图中显示任务组的名称,如果它不显示任何特定任务组之一的任务。列表视图项可以有一个隐藏字段,ViewBinder可用于将任务组的名称映射到字段,并在必要时将其设置为可见(按照主应用程序的指示)。

我的问题是如何告诉ViewBinder它正在显示的上下文,以便它可以确定如何表现?

我意识到这可以通过实现许多不同的ViewBinders来完成,但是这需要复制很多代码,并且更愿意使用单个ViewBinder来执行它,我只是将某些参数传递给

1 个答案:

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