Wenn ich versuche, die Telefonnummern aus der Kontaktliste des Telefons zu bekommen. Das Problem ist, wenn die App ausgeführt wird, während die Kontaktliste im Telefon leer ist, wird die App gestoppt. Ich habe es überprüft, weil der Cursor leer ist.Wie überprüft man, ob ein Cursor leer ist?
Wie kann ich überprüfen, ob der Cursor leer ist oder ob Kontakte in der Kontaktliste des Telefons vorhanden sind?
ArrayList<String> lstPhoneNumber = new ArrayList<String>();
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
lstPhoneNumber = new ArrayList<String>();
phones.moveToFirst();
// The problematic Line:
lstPhoneNumber.add(phones.getString(phones.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.NUMBER)));
while (phones.moveToNext()) {
lstPhoneNumber.add(phones.getString(phones.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.NUMBER)));
}
phones.close();
Entfernen Sie die Anrufe von phones.moveToFirst() und 1stPhonenumber.add. Verlassen Sie Ihre while-Schleife. Fest. – dymmeh
Versuchen Sie auch, eine Projektion der Spalten zu übergeben, nach denen Sie suchen. Verwenden Sie nicht alle Spalten (durch die Null für die Projektion), wenn Sie nur 1. – dymmeh