2010-08-10 5 views
15

Quelle est la différence exacte entre CursorAdapter et ResourceCursorAdapter?CursorAdapter vs ResourceCursorAdapter

Quelqu'un peut-il expliquer quelles sont les API requises pour override lors de la mise en œuvre de mon propre ResourceCursorAdapter?

Je suis passé par la documentation ResourceCursorAdapter et capable pour comprendre que son constructeur prend un paramètre supplémentaire mise en page par rapport à CursorAdapter constructeur. Mais je suis incapable de comprendre quelle est la signification d'avoir un paramètre de mise en page supplémentaire dans ResourceCusorAdapter constructeur.

Répondre

24

Les deux CursorAdapter et ResourceCursorAdapter sont des classes abstraites. La différence exacte est que ResourceCursorAdapter implémente la méthode newView (qui est abstraite dans le CursorAdapter de base).

ResourceCursorAdapter remplace également la méthode différemment newDropDownView, mais ce n'est pas la chose principale, la chose principale est NewView.

La mise en page supplémentaire dans le constructeur est ce qui est utilisé pour créer la vue pour chaque élément, voici la méthode NewView de ResourceCursorAdapter from the source:

/** 
    * Inflates view(s) from the specified XML file. 
    * 
    * @see android.widget.CursorAdapter#newView(android.content.Context, 
    *  android.database.Cursor, ViewGroup) 
    */ 
    @Override 
    public View newView(Context context, Cursor cursor, ViewGroup parent) { 
     return mInflater.inflate(mLayout, parent, false); 
    } 

En fait, si vous n'utilisez pas ResourceCursorAdapter, vous faites à peu près la même chose dans votre propre implémentation personnalisée de CursorAdapter. Vous êtes libre d'en faire plus, bien sûr, mais si vous avez une mise en page, il est plus facile d'étendre ResourceCursorAdapter (cela ajoute un peu de commodité, c'est tout).

+1

Désolé, j'aurais dû préciser, ctor signifie constructeur. Je vais modifier pour me débarrasser de ctor. –

Questions connexes