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.