In your line with String[] fromColumns = {ContactsContract.Data.DISPLAY_NAME};
, instead of
ContactsContract.Data.DISPLAY_NAME
try
ContactsContract.Contacts.DISPLAY_NAME_PRIMARY
In the documentation you can read that Data
are entries representing any number or email address or whatever, while Contacts
are entries representing one person.