android - bindView und newView für das Layout mit zwei Ansichten in CursorAdapter

Also hier ist die Geschichte:

Ich möchte zwei Layouts in meinem Adapter verwenden. Im Grunde muss ich also ein if in newView () haben, um zu bestimmen, welche Ansicht zurückgegeben werden soll, und ein if in bindView (), um zu wissen, was in der Ansicht zu tun ist. Ist das der richtige Ansatz?

Ich denke an so etwas:

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

Dann auf 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()
    }
}

Bin ich hier auf dem richtigen Weg? Denn laut meinen Logs ergibt die c.getPosition () in newView ein anderes Ergebnis als die c.getPosition () in bindView. Eigentlich denke ich nur daran, getView () zu überschreiben, aber es hat sich bewährt, newView und bindView in CursorAdapter zu überschreiben.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage