2

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

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

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

我意识到这可能可以通过实现许多不同ViewBindersViewBinder.

4

1 回答 1

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;
}
于 2011-05-03T20:07:10.057 回答