Alors voici l'histoire :
Je veux utiliser deux mises en page dans mon adaptateur. Donc, en gros, j'ai besoin d'avoir un if dans newView() pour déterminer quelle vue renvoyer et un if dans bindView() pour savoir aussi ce qu'il faut faire dans la vue. Est-ce la bonne approche ?
Je pense à quelque chose comme ça :
@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);
}
}
Puis sur 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()
}
}
Suis-je sur la bonne voie ? Car d'après mes journaux, c.getPosition() dans newView donne un résultat différent de c.getPosition() dans bindView. En fait, je pense simplement surcharger le getView() mais ils ont dit que la bonne pratique est de surcharger newView et bindView dans CursorAdapter.