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; 
} 
Смежные вопросы