Cómo identificar un contacto al presionarlo en Android Studio?
Quiero eliminar un contacto en particular, pero no encontrándolo por su ID, nombre, etc., simplemente pulsándolo y preguntando si estoy seguro de que quiero hacerlo.
He hecho algunas preguntas sobre este tema, pero la forma real en que quiero determinar el contacto que quiero eliminar es pulsándolo.
Esta es la clase que utilicé, que he actualizado para que funcione en mi Actividad:
private void deleteContacts() {
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
String lookupKey = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.LOOKUP_KEY));
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
contentResolver.delete(uri, null, null);
}
}
Aparentemente esto elimina todos los contactos (¿creo?).
¿Cómo hago para que en lugar de eliminar TODOS los contactos, solo elimine uno que yo quiera?
Proceso de cómo quiero que funcione:
- Pulsando este botón:
- Los contactos o tal vez solo el botón cambian de color, para que el usuario sepa cuándo está activada la función de eliminación (intentaré hacer esto por mí mismo).
-
Haciendo clic en un contacto.
-
Aparece una caja de “¿Está seguro de que desea eliminar este contacto?” (No es importante en este momento).
-
Después de estar seguro, se elimina el contacto.
Espero haber sido lo suficientemente preciso para que las personas comprendan mi pregunta.
davy.ai
Para eliminar un solo contacto al hacer clic en él, debes implementar un
OnClickListener
para la vista del contacto. Aquí están los pasos a seguir:findViewById()
y establece unOnClickListener
en ella.onClick()
, puedes usar el métodogetContentResolver()
para obtener una instancia de la claseContentResolver
, y luego usar el métododelete()
para eliminar el contacto.DialogFragment
. Por ejemplo:ConfirmationFragment.show()
desde elOnClickListener
.Ten en cuenta que deberás reemplazar
R.id.contact_view
con el ID de la vista que representa el contacto en tu diseño.