telefonicos - mostrar solo contactos con telefono android 7
Selector de varios contactos de Android(con la opción de elegir el número de teléfono) (3)
Necesito poder seleccionar múltiples contactos en Android. El flujo es así:
- El usuario hace clic en un botón que abre la aplicación Contactos.
- Sin embargo, en lugar de poder seleccionar un único contacto, necesito poder seleccionar varios contactos (en el mismo lanzamiento del intento).
- 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 función ya está presente en mi teléfono Samsung Android (Running 2.3 Gingerbread) cuando hago clic en "Contactos" en la aplicación de mensajería. Ver captura de pantalla a continuación:
Tendrá que escribir esto usted mismo. Puede usar el proveedor de ContactsContract
para consultar todos los contactos con números de teléfono, y luego para el contacto seleccionado puede consultar todos los números de teléfono para ese contacto. Puede mostrar los resultados en actividades o cuadros de diálogo 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! Encontré un código incompleto en la red y después de romper la cabeza con él, ¡finalmente encontré la respuesta! Básicamente, inicie el selector y deje que devuelva los datos en los extras =]
No hubo una respuesta completa en la red, ¡así que espero que ayude a un alma!
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();
}
No existe una forma de hacerlo, por lo que debe hacer la mayor parte del trabajo usted mismo. Afortunadamente, no es tan difícil.
Monitor
Para mostrar sus contactos, puede usar 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 la vista de lista con selección múltiple te permita poner nada más que texto para cada fila, pero tendrías que profundizar para descubrirlo.
He usado el método del adaptador personalizado para algo muy similar (excepto la parte de números de teléfono múltiples). Es bastante fácil de hacer y encuentro que los adaptadores personalizados son realmente útiles a largo plazo.
Tutorial personalizado Listview del adaptador
Con una configuración de adaptador personalizado, puede crear objetos de datos con toda la información para una persona, incluido 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 usar la API de ContactContract para obtener información para sus contactos.