53 votes

GetView Vs. BindView dans un CursorAdapter personnalisé?

Donc, je regarde cette vidéo http://www.youtube.com/watch?v=N6YdwzAvwOA et Romain Guy montre comment rendre le code de l'adaptateur d'interface utilisateur plus efficace en utilisant la méthode getView() . Est-ce que cela s'applique aussi aux CursorAdapters? J'utilise actuellement bindView() et newView() pour mes adaptateurs de curseur personnalisés. Devrais-je utiliser getView à la place?

73voto

CommonsWare Points 402670

CursorAdapter a une implémentation de getView() qui délègue à newView() et bindView() , de manière à appliquer le modèle de recyclage des lignes. Par conséquent, vous n'avez rien à faire de spécial avec un CursorAdapter pour le recyclage des lignes si vous passez outre newView() et bindView() .

19voto

Crossle Song Points 3341
 /**
     * @see android.widget.ListAdapter#getView(int, View, ViewGroup)
     */
    public View getView(int position, View convertView, ViewGroup parent) {
        if (!mDataValid) {
            throw new IllegalStateException("this should only be called when the cursor is valid");
        }
        if (!mCursor.moveToPosition(position)) {
            throw new IllegalStateException("couldn't move cursor to position " + position);
        }
        View v;
        if (convertView == null) {
            v = newView(mContext, mCursor, parent);
        } else {
            v = convertView;
        }
        bindView(v, mContext, mCursor);
        return v;
    }
 

Ce code source CursorAdapter, clairement cursorAdapter travaille plus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X