Передача переменных в ViewBinder - PullRequest
2 голосов
/ 03 мая 2011

У меня есть ViewBinder, который действует как посредник между моим ListView и адаптером курсора к базе данных.В зависимости от контекста, в котором эти данные отображаются, мне нужно, чтобы ViewBinder делал разные вещи.

В качестве примера возьмем приложение для управления задачами, которое отображает задачи для всех существующих групп задач.,Возможно, в этом случае приложение хочет отобразить имя группы задач в представлении списка, тогда как оно не хотело бы отображать задачи для одной из конкретных групп задач.Элемент представления списка может иметь скрытое поле, и ViewBinder может использоваться для сопоставления имени группы задач с полем И установки его на видимость при необходимости (как указано в главном приложении).

Мой вопроскак можно сказать ViewBinder контексту, в котором он отображается, чтобы он мог определить, как себя вести?

Я понимаю, что это может быть сделано путем реализации множества различных ViewBinders, но для этого потребуетсямного кода, который должен быть продублирован, и я предпочел бы делать это с одним ViewBinder, которому я просто передаю определенные параметры.

1 Ответ

2 голосов
/ 04 мая 2011

Это можно сделать, реализовав конструктор для реализуемого вами 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;
}
...