Obtener el nombre de la vista de forma programática en Android
Estoy haciendo una pequeña biblioteca para encapsular la funcionalidad de los adaptadores y necesito conseguir el nombre de una visión programatically. Por ejemplo:
<ImageView android:id="@+id/**ivPerson**" android:layout_width="80dp" android:layout_height="80dp"/>
Ahora, en el código tengo la vista (ImageView) y necesito obtener el nombre de la vista -> ivPerson. Puedo obtener el id con view.getId () pero eso no es lo que necesito.
- ¿Por qué no hay un método getContentView () para la actividad?
- Renderización de la cámara en múltiples superficies - en y fuera de la pantalla
- Diferencia entre SurfaceView y ImageView
- Ejemplo de uso de ContentLoadingProgressBar
- Diferencia entre hardware y software en Android
¿Es posible?
He intentado con esto:
String name = context.getResources().getResourceEntryName(view.getId());
Pero no funciona.
¡¡Gracias por adelantado!!
- Ver demasiado grande para caber en el caché de dibujo al llamar a getDrawingCache ()
- En la aplicación Google Play, ¿cómo se implementa el ViewGroup que muestra las listas superiores de aplicaciones?
- Android View.getDrawingCache devuelve null, sólo null
- FindViewById () no funciona en una clase no MainActivity
- Android: Duplicar el elemento View en el grupo ViewGroup
- Android equivalente de trabajo alrededor de View.getX () antes de la API 11?
- Androide enfrente de bringChildToFront
- ¿Cómo cambiar el color de la lista de "final de desplazamiento" drag color?
Usted puede hacerlo fijando la etiqueta como el id ie android:tag="ivPerson"
y utilizar String name = view.getTag().toString()
para obtener el nombre de la etiqueta
No hay manera de obtener la identificación de ivPerson
usando getId()
o cualquier otro método, sin embargo se puede obtener mediante el valor de la etiqueta de configuración como se menciona en la respuesta de rahul
etiqueta del sistema en xml:
android:tag="ivPerson"
buscarlo en su actividad
view.getTag().toString();
Usted puede hacer algo como esto:
for(Field field : R.id.class.getFields()) { try { if(field.getInt(null) == R.id.helloTV) { Toast.makeText(this, field.getName(), Toast.LENGTH_LONG).show(); } } catch (IllegalAccessException e) { e.printStackTrace(); } }
Pros:
- No es necesario configurar manualmente la etiqueta. Así que usted puede usar la etiqueta para otros fines.
Contras:
- Más lento debido a la reflexión.
- RxAndroid y eventos botón?
- Ninguna prueba encontrada para dado incluye error, al ejecutar la prueba de unidad parametrizada en Android Studio