android - bindView i nowyWidok dla układu dwóch widoków w CursorAdapter

Oto historia:

Chcę użyć dwóch układów w moim adapterze. Zasadniczo muszę mieć if w newView (), aby określić, który widok ma zostać zwrócony, oraz if w bindView (), aby wiedzieć, co robić w widoku. Czy to właściwe podejście?

Myślę o czymś takim:

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

Następnie na 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()
    }
}

Czy jestem tutaj na dobrej drodze? Ponieważ zgodnie z moimi logami c.getPosition () w newView daje inny wynik na c.getPosition () w bindView. Właściwie myślę o nadpisaniu getView (), ale powiedzieli, że dobrą praktyką jest nadpisywanie newView i bindView w CursorAdapter.

questionAnswers(1)

yourAnswerToTheQuestion