Tengo una vista de lista personalizada y necesito mostrar los contactos en orden alfabético. ¿Puede proporcionar el código de muestra? ¿Cómo puedo lograr esto?Cómo mostrar los contactos en orden alfabético en Listview
Respuesta
puede obtener contactos en orden Alphabatical así:
Cursor cursor = getContentResolver.query(Phone.CONTENT_URI, null, null, null, Phone.DISPLAY_NAME + " ASC");
se refieren estos enlaces para obtener más cearity:
How to call Android contacts list?
How to get contacts from native phonebook in android
How to obtain all details of a contact in Android
How to get the first name and last name from Android contacts?
How to import contacts from phonebook to our application
How to get all android contacts but without those which are on SIM
Para la lista se puede consultar este tutorial:
uso este código para recuperar los contactos
ArrayList<HashMap<String,String>> contactData=new ArrayList<HashMap<String,String>>();
ContentResolver cr = getContentResolver();
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);
while (cursor.moveToNext()) {
try{
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String name=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null);
while (phones.moveToNext()) {
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
HashMap<String,String> map=new HashMap<String,String>();
map.put("name", name);
map.put("number", phoneNumber);
contactData.add(map);
}
phones.close();
}
}catch(Exception e){}
}
Ahora los datos de contacto se almacenan en el contactData ArrayList. Ahora resolver esto arrayList como abajo
Collections.sort(contactData, new Comparator(){
@Override
public int compare(Object o1, Object o2) {
HashMap map1=(HashMap)o1;
HashMap map2=(HashMap)o2;
String s1=(String)map1.get("name");
String s2=(String)map2.get("name");
return s1.compareTo(s2);
}
});
Ahora los datos de contacto se almacenan en el orden de clasificación en el Datos de contacto ArrayList.
Esto funcionó, pero hay duplicados en cada contacto – Gibs
he añadido encabezados alfabéticos a la lista de contactos
new ReadContactTask(context, showProgressDialog,new OnContactReadListener() {
@Override
public void onContactRead(List<ContactItem> dummyList) {
ArrayList<ContactItem> latestPhoneContacts = new ArrayList<>();
if(dummyList!=null && dummyList.size()>0)
{
tvNoResult.setVisibility(View.GONE);
for(ContactItem contactItem : dummyList){
String contactNameInCapital = "";
if(contactItem.getContactName()!=null && contactItem.getContactName().length()>2){
contactNameInCapital = contactItem.getContactName().substring(0,1).toUpperCase();
if(contactNameInCapital.charAt(0) != previousContact.charAt(0))
{
latestPhoneContacts.add(new ContactItem(contactNameInCapital.substring(0,1)));
latestPhoneContacts.add(contactItem);
}
else
{
latestPhoneContacts.add(contactItem);
}
previousContact = contactNameInCapital;
}
}
if(latestPhoneContacts!=null && latestPhoneContacts.size()>0)
contactListAdapter.addItems(latestPhoneContacts);
}
}
@Override
public void onContactEmpty() {
}
}).execute();
donde
private String previousContact ="Zee";
¿Qué es ContactItem? – Gibs
Es necesario hacer esto:
Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC");
- 1. cómo File.listFiles en orden alfabético?
- 2. Android: cómo llenar un ListView con indexador alfabético y fastscroll como en la aplicación de contactos.?
- 3. mysql orden alfabético
- 4. Crear fácil desplazamiento alfabético en ListView?
- 5. resultados en orden alfabético de Dir.glob
- 6. Cargando los contactos del teléfono en orden ascendente
- 7. PHP readdir() no devolver los archivos en orden alfabético
- 8. Ordene los hash en el orden alfabético por un campo
- 9. Eclipse organizar métodos en orden alfabético
- 10. Ordenar Android cadenas.xml en orden alfabético
- 11. Exportar con orden alfabético en Python ConfigParser
- 12. Cómo combinar archivos en bash en orden alfabético
- 13. ordenando a los elementos de la pantalla en orden alfabético en Django-administración
- 14. Cómo mostrar "Sin resultados" en ListView filtrable?
- 15. Wordpress: previous_post_link/next_post_link por orden alfabético?
- 16. ordenar una lista por orden alfabético
- 17. ¿Puedo forzar que os.walk de python3 visite los directorios en orden alfabético? ¿cómo?
- 18. PHP: cómo ordenar los valores de una matriz en orden alfabético?
- 19. PHP (carpeta) Lista de archivos en orden alfabético?
- 20. WPF ListView Mostrar siempre los elementos completos
- 21. Mysql orden de encargo por el orden alfabético por:
- 22. Consulta SQLite en orden alfabético no sensible a mayúsculas
- 23. Android Listview como lista de contactos de iphone (alfabetos en el lado derecho de la lista)
- 24. cómo ordenar por longitud de cadena seguido de orden alfabético?
- 25. existe contacto en los contactos
- 26. No clasificar alfabético en Delphi
- 27. cómo ordenar una matriz de cadenas por orden alfabético?
- 28. Cómo mostrar las letras alfabéticas en el lado de Android ListView
- 29. ¿Cómo mostrar archivos en la tarjeta SD en un ListView?
- 30. Android Mostrar HTML en un ListView
Gracias hombre! Eres increíble: D –