2010-07-20 18 views
1

Est-ce que quelqu'un connaît un exemple simple qui utilise CursorAdapter? Voici ce que je fais maintenant et il plante avec une RuntimeException. Je suis sûr que quelque chose de simple me manque étant donné que je suis un novice et que je ne trouve aucun exemple simple d'un ListView utilisant un Cursor.ListActivity with Cursor

Merci,


...

MyListActivity class public final étend ListActivity { MyCursorAdapter private class étend CursorAdapter { MyCursorAdapter publique (contexte de contexte, le curseur du curseur) { super (contexte, curseur); // CRASH ...

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    myDB_ = new MyDB(this); 
    myDB_.open(); 

    Cursor cursor = myDB_.read(); 
    startManagingCursor(cursor); 

    MyCursorAdapter adapter = new MyCursorAdapter(this, cursor); 

...

Répondre

3

Le tutoriel Bloc-notes dans les ressources pour les développeurs Android utilise un CursorAdapter avec ListView. Vous pouvez trouver la partie pertinente du tutoriel ici: http://developer.android.com/resources/tutorials/notepad/notepad-ex1.html

+0

Je ne vois pas un CursorAdapter, je vois un SimpleCursorAdapter, que je soupçonne être similaire, mais ce n'est pas la même chose. Si vous regardez mon exemple de code, j'utilise le CursorAdapter. J'essaye d'afficher une image basée sur les données dans la base de données. Dans mon cas, c'est simplement un graphique différent si la valeur stockée est positive ou négative. Si un SimpleCursorAdapter fonctionne pour cela, faites le moi savoir. Sinon, je suppose qu'il ne le fera pas. – Mitch

+0

La documentation du SimpleCursorAdapter indique qu'il peut être mappé à ImageViews. http://developer.android.com/reference/android/widget/SimpleCursorAdapter.html – Josiah

+0

Je n'utilise pas un ImageView, j'utilise un ImageButton. De plus, je ne sais pas comment ils sauraient comment cartographier mes valeurs. Comment savoir si une valeur positive ou négative correspondrait à une image différente sur mon ImageButton. D'où la raison pour laquelle j'ai pensé que je devrais utiliser un CursorAdapter et écrire le mapping moi-même. Vrai? – Mitch

0

Vous pouvez utiliser setViewBinder sur un SimpleCursorAdapter pour mapper les valeurs de vues non prises en charge par le SimpleCursorAdapter lui-même. Vous pouvez voir un exemple d'utilisation setViewBinder pour lier les données du fournisseur de contenu à un CheckBox ici: CheckBox checked state in a ListView

Vous pouvez utiliser setViewBinder pour lier vos images à vos imageButtons. De cette façon, vous n'avez pas besoin de créer votre propre ListAdapter.