AutoCompleteTextView alle Kontakte

MetBo

MetBo

Erfahrenes Mitglied
4
Hallo,

ich benutze eine AutoCompleteTextView um bei Eingabe den Kontakt unter Kontakte zu suchen und ggf. die Eingabedaten zu vervollständigen.

Aufruf:
Code:
mTxtEmpfaenger = (AutoCompleteTextView) findViewById(R.id.txtEmpfaenger);  
ArrayAdapter<String> contacts = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, getAlleKontaktTeleNr());
mTxtEmpfaenger.setAdapter(contacts);

Funktion getAlleKontaktTeleNr:
Code:
private List<String> getAlleKontaktTeleNr() {
    	List<String> contacts = new ArrayList<String>();
    	ContentResolver cr = getContentResolver();
        Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
        
        if (cursor.getCount() > 0) {
        	while (cursor.moveToNext()) {
        		String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
    			String displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
    			
    			if (Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
    	            Cursor pCursor = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
    	            						null, 
	            							ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", 
            								new String[]{contactId}, null);
    	 	        
    	            while (pCursor.moveToNext()) {
    	            	String phoneNumber = pCursor.getString(pCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
    	            	System.out.println(phoneNumber + displayName);
    	            	
    	            	contacts.add(phoneNumber + " (" + displayName + ")");
    	 	        } 
    	            
    	 	        pCursor.close();
    	 	    }
            }
        }
    	
    	return contacts;
    }

Der Code funktioniert in der Hinsicht, dass wenn ich die Telefonnummer eingebe, dass dann der Kontakt gefunden wird, aber nicht anders herum.

Mein Problem: Ich möchte, dass der Benutzer den Namen des Kontaktes eingibt und im DropDown steht der Kontaktname + Telenr. Beim Anklicken der Dropdown erscheint aber nur die Telenr des Kontaktes in dem Textfeld und nicht Name+Nr.

Was muss ich ändern, damit ich die Lösung bekomme?


Danke
 
Also ich hab deinen Code mal ausprobiert. Bei mir werden auch die Kontaktnamen angezeigt. Und wenn du zwischen Klammer und dem Namen noch ein Leerzeichen machst, dann funktioniert auch die Suche.
 
  • Danke
Reaktionen: MetBo
Ah ... so einfach geht es, danke dir! Manchmal blickt man durch seinen eigenen Code nicht mehr durch ... nach 6 Stunden proggen .... ^^
 

Ähnliche Themen

Hansimglueck0815
Antworten
0
Aufrufe
731
Hansimglueck0815
Hansimglueck0815
HoerMirAuf
Antworten
3
Aufrufe
837
jogimuc
J
E
Antworten
1
Aufrufe
818
enrem
E
Zurück
Oben Unten