2017-04-14 6 views
0

Ich arbeite an einer App, bei der die Telefonnummer des Kontakts aus dem Namen des Kontakts abgerufen werden muss. Ich suchte danach und bekam den Code "How to get a contact's number from contact name in android" aber das Problem ist, dass es nur eine Zahl zurückgibt, obwohl es mehrere Einträge mit demselben Namen gibt. Ich möchte, dass mein Code eine Listenansicht aller Kontakte zurückgibt, die denselben Namen haben, und der Benutzer kann dann auswählen, was er möchte.rufen Sie alle ähnlichen Kontaktnamen ab

Antwort

0

Versuchen Loader

Check out Antwort folgende es für mich arbeiten

String DISPLAY_NAME = ContactsContract.Contacts.DISPLAY_NAME; 
    String NUMBER = ContactsContract.CommonDataKinds.Phone.NUMBER; 


public class SmsInviteFragment extends Fragment implements LoaderManager.LoaderCallbacks<Cursor> { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.fragment_sms_invite, container, false); 

    getActivity().getSupportLoaderManager().initLoader(1, null, SmsInviteFragment.this); 
    return v; 

} 





@Override 
    public Loader<Cursor> onCreateLoader(int id, Bundle args) { 
     onStartNetCall(); 
     Uri CONTENT_URI = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; 

    return new CursorLoader(getActivity(), CONTENT_URI, null, null, null, null); 
} 

public void onLoadFinished(Loader<Cursor> arg0, Cursor cursor) { 

    cursor.moveToFirst(); 
    while (!cursor.isAfterLast()) { 


     String name = "" + cursor.getString(cursor.getColumnIndex(DISPLAY_NAME)); 
     String phoneNo = "" + cursor.getString(cursor.getColumnIndex(NUMBER)); 


     cursor.moveToNext(); 


    } 

    Log.e(TAG, "onLoadFinished: "); 


} 

@Override 
public void onLoaderReset(Loader<Cursor> loader) { 

} 

} 
Verwandte Themen