android - bindView e newView para layout de duas visualizações no CursorAdapter

Então aqui está a história:

Eu quero usar dois layouts no meu adaptador. Então, basicamente, eu preciso ter um if no newView () para determinar qual visão retornar e um if em bindView () para saber também o que fazer na view. É este o caminho certo?

Estou pensando em algo assim:

@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);
    }
}

Então no 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()
    }
}

Estou no caminho certo aqui? Porque de acordo com meus logs, o c.getPosition () em newView fornece resultado diferente em c.getPosition () em bindView. Eu estou realmente pensando em apenas substituir o getView (), mas eles disseram que boa prática está substituindo newView e bindView no CursorAdapter.

questionAnswers(1)

yourAnswerToTheQuestion