2011-04-29 3 views
1

je le code suivant:Android: Accès DB

DbAdapter dbAdapter = new DbAdapter(this); 
dbAdapter.open(); 
ArrayList<String> queryResultList = new ArrayList<String>(); 
Cursor cur = dbAdapter.db.query("mytable", columns, where, null, groupBy, null, null);  
cur.moveToFirst(); 
while (cur.isAfterLast() == false) 
{ 
     queryResultList.add(cur.getString(0)); 
    cur.moveToNext(); 
} 
cur.close(); 

dbAdapter.close(); 

Ce code fonctionne sur un appareil où il fonctionne jamais auparavant, soit un émulateur essuyée ainsi qu'un appareil Samsung Galaxy S où l'application a été retirée après le premier procès. Cela signifie que la base de données que je suis en train de lire est créée en premier sur l'appareil. C'est une base de données personnalisée. Sur 2.2 il fonctionne parfaitement bien, sur 2.1-update1 (API niveau 7) il ne le sera pas, le isAfterLast() est toujours vrai, mais il est là depuis API niveau 1. Une idée? Ou une idée de ce que je peux faire pour comprendre?

Merci, A.

Répondre

0

Hmm, pourquoi ne pas utiliser:

Cursor cur = ...; 
while (cur.moveToNext()) { 
    queryResultList.add(cur.getString(0)); 
} 
cur.close();