29
Gibt es eine Möglichkeit, die Anzahl der zurückgegebenen Zeilen auf einen Cursor zu begrenzen? Ich habe ein Telefon mit etwa 4000 Kontakten, ich brauche nur ein paar von ihnen.Begrenzung der Anzahl der Zeilen in einer ContentResolver.query() - Funktion
Dies ist der Code i
db = new dBHelper(this);
ContentResolver cr = getContentResolver();
Cursor cursor;
cursor = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, ContactName + " ASC");
Log.i(TAG, CLASSNAME + " got contacts entries");
for (int it = 0; it <100 ; it++){//cursor.getCount()
Log.i(TAG, CLASSNAME + " getting string");
String mytimes_contacted = cursor.getString(cursor.getColumnIndex(dBHelper.times_contacted));
Log.i(TAG, CLASSNAME + " done from the string");
}
bin mit
die Log ich erhalte ist
I/Check(11506): [ContactsPicker] got contacts entries
I/Check(11506): [ContactsPicker] getting first string
D/AndroidRuntime(11506): Shutting down VM
W/dalvikvm(11506): threadid=1: thread exiting with uncaught exception (group=0x2aac8578)
D/dalvikvm(11541): GC_CONCURRENT freed 923K, 46% free 4000K/7303K, external 1685K/2133K, paused 1ms+8ms
E/AndroidRuntime(11506): FATAL EXCEPTION: main
E/AndroidRuntime(11506): java.lang.RuntimeException: Unable to start activity ComponentInfo{~~my package name~~}: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 3537
Danke Sam, ich habe total vergessen den Cursor zu bewegen, sogar innerhalb der Schleife, wie dumm! Ich werde Ihren Rat versuchen und zu Ihnen zurückkehren – user1347945
Aktualisiert mit einem Limit-Beispiel, aber es ist auf die ersten 100 Ergebnisse beschränkt. Die wirkliche Frage lautet: Wie wollen Sie den Cursor eingrenzen? Nur Leute mit dem Namen "Bob"? – Sam
ummmm, der Fehler bewegte den Cursor wirklich, aber gut, dass ich jetzt gelernt habe, wie man den Cursor eingrenzt. Die Frage war, wie ich die Cursorgröße begrenzen sollte, so dass ich eine begrenzte Anzahl von Zeilen erhalten kann, selbst wenn die Datenbank mehr als die angegebene Anzahl hatte ... – user1347945