2017-01-05 4 views
1

Ich habe zwei Array-Liste NumINDb (VARIABLES) und gemeinsame (VARIABLES) ... Ich habe verglichen Arraylist und gemeinsame Elemente aus dem Arraylist in einem neuen Arraylist Finalarr (VARIABLE) ...kontakt aus dem telefonbuch in android

ich Vorbei an der Arraylist an eine Funktion getPlayers (Finalarr) ..... im Folgenden wird die Funktion ...

ich habe Telefonnummern in der FinalArr Arraylist und ihre Namen aus der Kontaktliste Buch/Phone Möchten Buch des Telefons .... Ich möchte den Wert in einer Arraylist speichern ...

private ArrayList <DATA_CONTACT> getPlayers(ArrayList <String> filterVALUES) { 
    ArrayList <DATA_CONTACT> players = new ArrayList <DATA_CONTACT>(); 

    ContentResolver cr = getContext().getContentResolver(); 

    Cursor phoneCursor; 
    for (int o = 0; o < filterVALUES.size(); o++) { 

     phoneCursor = cr.query(
      ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.NUMBER + " = ?", new String[] { 
       filterVALUES.get(o).toString() 
      }, null); 

     DATA_CONTACT p = null; 
     while (phoneCursor.moveToNext()) { 

      p = new DATA_CONTACT(); 
      final String phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
      String contact_display_name = phoneCursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 

      // filtered.add(phoneNumber.toString()); 

      p.setName(contact_display_name); 
      p.setPhone(phoneNumber.toString()); 
      p.setImg(R.drawable.com_facebook_button_like_background); 
     } 
     phoneCursor.close(); 
     players.add(p); 

    } 
    return players; //Returns a List of Contact Matching the Arraylist.. 
} 

Fehler ...

FATAL EXCEPTION: main 
               Process: com.example.cosmic.zumi_test, PID: 534 
               java.lang.NullPointerException: Attempt to invoke interface method 'int android.database.Cursor.getColumnIndex(java.lang.String)' on a null object reference 
                at com.example.cosmic.zumi_test.Contact_FRAGMENT3.getPlayers(Contact_FRAGMENT3.java:243) 
                at com.example.cosmic.zumi_test.Contact_FRAGMENT3.access$100(Contact_FRAGMENT3.java:57) 
                at com.example.cosmic.zumi_test.Contact_FRAGMENT3$1.onDataChange(Contact_FRAGMENT3.java:157) 
                at com.firebase.client.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:45) 
                at com.firebase.client.core.view.DataEvent.fire(DataEvent.java:45) 
                at com.firebase.client.core.view.EventRaiser$1.run(EventRaiser.java:38) 
                at android.os.Handler.handleCallback(Handler.java:815) 
                at android.os.Handler.dispatchMessage(Handler.java:104) 
                at android.os.Looper.loop(Looper.java:194) 
                at android.app.ActivityThread.main(ActivityThread.java:5643) 
                at java.lang.reflect.Method.invoke(Native Method) 
                at java.lang.reflect.Method.invoke(Method.java:372) 
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
+0

Ich verstehe nicht, was Sie von uns wollen? Dass wir Code für dich schreiben? Bedeutung: Bitte sprechen Sie nicht nur über das, was Sie ** wollen ** tun; aber erklären Sie mir, was Sie daran hindert, dorthin zu gelangen. Außerdem: Sie möchten, dass wir unsere Zeit verbringen, um Ihnen zu helfen; Bitte nehmen Sie sich die 1 Minute Zeit, um den Quellcode korrekt zu formatieren/einzurücken. Lange Rede kurzer Sinn: Habe hier einige Zeit verbracht [help] und lese was/wie man hier fragt. – GhostCat

+0

@ghostCAT Ich habe meine Fehler Put Message..I Getting..Pls Hilfe ist ... – Akshay

+0

, dass mehr Sinn (noch: warum die faule Formatierung für den Stack-Trace) macht ... wie auch immer: Start hier lesen: http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it – GhostCat

Antwort

1

Die Ausnahmepunkte (wahrscheinlich?) Hier:

cursor.getColumnIndex(... 

und sagt Ihnen, dass Cursornull ist.

Meinten Sie phoneCursor statt?

0

Wenn Sie gerade nur Namen von Array-Liste erhalten wollen (Ich gehe davon aus Liste Ihr Array enthält Zahlen), dann das Verfahren unten ist, die Namen gegen Kontaktnummer zurückgibt.

public static String getContactName(Context context, String phoneNumber) { 
    ContentResolver cr = context.getContentResolver(); 
    Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber)); 
    Cursor cursor = cr.query(uri, new String[]{ContactsContract.PhoneLookup.DISPLAY_NAME}, null, null, null); 
    if (cursor == null) { 
     return null; 
    } 
    String contactName = null; 
    if(cursor.moveToFirst()) { 
     contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME)); 
    } 

    if(cursor != null && !cursor.isClosed()) { 
     cursor.close(); 
    } 
    return contactName; 
} 

Vergessen Sie nicht die Erlaubnis Kontaktdaten lesen 'hinzuzufügen in manifest

Verwandte Themen