2017-10-11 4 views
0

J'ai du code dans GetView dans un CursorAdapter personnalisé qui nécessite la clé primaire, et je voudrais lui assigner une variable égale.Android Custom CursorAdapter - Récupère la clé primaire dans getView?

Comment procéder efficacement? GetView prend en position, convertView et un parent GridView comme arguments, donc je n'ai pas le curseur là.

+0

Que diriez-vous en utilisant 'PagedListAdapter' au lieu de' CursorAdapter'? – EpicPandaForce

Répondre

0

Demandez à votre adaptateur de traduire le numéro de ligne ListView position.

J'utilise un code similaire à this

public class MyCursorAdapter extends CursorAdapter { 
    ... 

    /** internal helper. return null if position is not available */ 
    private Cursor getCursorAt(int position) { 
     return (Cursor) getItem(position); 
    } 

    /** translates offset in adapter to id of image */ 
    public long getImageId(int position) { 
     Cursor cursor = getCursorAt(position); 

     return cursor.getLong(cursor.getColumnIndex(MY_LONG_COLUMN_NAME)); 
    } 

} 
+0

Est-ce que getItem (position) fonctionnerait même si, disons, j'ai supprimé un objet de la base de données plus tard? – CCS

+0

Si vous utilisez un fournisseur de contenu comme source de données de l'adaptateur de curseur, votre ListActivity peut s'enregistrer pour être informé des modifications afin de pouvoir recharger la liste. – k3b