Android - bindView и newView для двух макета просмотра в CursorAdapter

Итак, вот история:

Я хочу использовать два макета в моем адаптере. В общем, мне нужно иметь if в newView (), чтобы определить, какое представление возвращать, и if в bindView (), чтобы также знать, что делать в представлении. Это правильный подход?

Я думаю о чем-то вроде этого:

@Override
public View newView(Context context, Cursor c,
        ViewGroup parent) {     
    if (HEADER == getItemViewType(c.getPosition())){
        return (View) layoutInflater.inflate(R.layout.my_header, null);
    } else {
        return (View) layoutInflater.inflate(R.layout.my_row, null);
    }
}

Затем на bindView:

@Override
public void bindView(final View view, final Context context,
        Cursor c) {     
    if (TYPE_HEADER == getItemViewType(c.getPosition())){
        // init and set values here e.g. view.findViewById().setText()
    } else {
        // init and set values here e.g. view.findViewById().setText()
    }
}

Я на правильном пути здесь? Потому что, согласно моим журналам, c.getPosition () в newView дает другой результат для c.getPosition () в bindView. Я на самом деле думаю просто переопределить getView (), но они сказали, что хорошей практикой является переопределение newView и bindView в CursorAdapter.

Ответы на вопрос(1)

Ваш ответ на вопрос