Selector de varios contactos de Android (con la opción de elegir qué número de teléfono)

Necesito poder seleccionar varios contactos en Android. El flujo es así:

  1. El usuario hace clic en un botón que abre la aplicación Contactos.
  2. Sin embargo, en vez de poder seleccionar un solo contacto, necesito poder seleccionar varios contactos (en el mismo lanzamiento de la intención).
  3. Si un contacto tiene varios números de teléfono, necesito que el usuario pueda elegir el número de teléfono que desea seleccionar.

Esta característica ya está presente en mi Samsung Android Phone (Running 2.3 Gingerbread) cuando hago clic en "Contactos" en la aplicación Mensajería. Vea la captura de pantalla abajo:

Introduzca aquí la descripción de la imagen

Introduzca aquí la descripción de la imagen

Introduzca aquí la descripción de la imagen

No hay construido en forma de hacer esto, por lo que necesita hacer la mayor parte del trabajo por ti mismo. Afortunadamente, no es tan difícil.

Monitor

Para mostrar sus contactos, puede utilizar una vista de lista con el modo de selección de selección múltiple o puede crear un adaptador personalizado y vincularlo a una vista de lista normal. No creo que el listview con multi-select le permita poner nada que no sea texto para cada fila, pero tendría que cavar más profundo para averiguarlo.

He utilizado el método del adaptador personalizado para algo muy similar (excepto la parte de varios números de teléfono). Es bastante fácil de hacer y encontrar adaptadores personalizados son realmente útiles en el largo plazo.

Tutorial de ListView de adaptador personalizado

Con una configuración de adaptador personalizada, puede crear objetos de datos con toda la información de una persona, incluyendo su nombre y número (s) de teléfono. En el getView de su adaptador personalizado, puede decidir qué / cómo y dónde mostrar cada información.

Reuniendo información

Tendrá que utilizar la API de ContactContract para obtener información para sus contactos.

Información de contacto de Reading

Leer TODOS los números de teléfono de un contacto

Tendrás que escribir todo esto tú mismo. Puede utilizar el proveedor ContactsContract para consultar todos los contactos con números de teléfono y, a continuación, para el contacto seleccionado puede consultar todos los números de teléfono de ese contacto. Puede mostrar los resultados en las actividades o diálogos como mejor le parezca.

Lamentablemente, este código no es compatible con todas las versiones de android

Sé que es un poco tarde pero quería compartir esto! He encontrado un código incompleto en la red y después de agrietarme la cabeza con ella finalmente encontré la respuesta! Básicamente, se inicia el selector y se deja volver los datos en los extras =]

No había una respuesta completa en la red, así que espero que ayude a un alma por ahí!

Disfrutar:

  public void pickContact(View v){ try { Intent phonebookIntent = new Intent("intent.action.INTERACTION_TOPMENU"); phonebookIntent.putExtra("additional", "phone-multi"); startActivityForResult(phonebookIntent, PICK_CONTACT); // PICK_CONTACT IS JUST AN INT HOLDING SOME NUMBER OF YOUR CHOICE } catch (Exception e) { e.printStackTrace(); } } public String getData(String contact, int which) { return contact.split(";")[which]; } public void onActivityResult(int reqCode, int resultCode, Intent data) { final int URI = 0; final int NUMBER = 1; if (RESULT_OK != resultCode) return; Bundle contactUri = data.getExtras(); if (null == contactUri) return; ArrayList<String> contacts = (ArrayList<String>)contactUri.get("result"); Toast.makeText(getApplicationContext(), getData(contacts.get(0),NUMBER), Toast.LENGTH_SHORT).show(); } 
  • Cómo ofuscar mi proyecto android en IDE eclipse?
  • API de reconocimiento de voz, Google Voice hará esto?
  • Consejos para cambiar de App Inventor a Eclipse
  • ¿"Borrar datos" también matan a la aplicación?
  • Métodos compatibles para ver en Android 2.2 (setScale y setPivot)
  • SDK de Android. AudioManager. Valor máximo int setStreamVolume
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.