¿Cómo obtener sólo el nombre de la clase, no la ruta completa?
Soy consciente de que el uso de Context
y un método getClass().getName()
Puedo obtener una cadena que representan el nombre completo de la clase, como com.package1.package2.MainActivity
.
¿Cómo puedo obtener sólo la última parte, nombre de clase solamente? En este caso, sería cadena MainActivity
.
Puedo hacerlo con un simple split()
método, pero tal vez hay una mejor manera, más fiable.
Esto es todo lo que necesita.
MainActivity.this.getClass().getSimpleName();
Para obtener sólo el nombre de la clase, no la ruta completa que va a utilizar esta expresión:
String className = this.getLocalClassName(); //or String className = getBaseContext().getLocalClassName(); //or String className = getApplicationContext().getLocalClassName();
Alternativamente, usted podría usar:
private static final String TAG = MainActivity.class.getSimpleName();
No importa cómo lo hagas, tendrás que realizar una operación adicional encima de getClass. Recomiendo este sobre la división:
String className = xxx.getClass(); int pos = className.lastIndexOf ('.') + 1; String onlyClass = className.substring(pos);
Ninguna otra solución funciona para mí, no sé por qué. Estoy usando
this.getClass().getName().replace("$",".").split("\\.")[3]
Contras: en una cadena, y se puede utilizar en los hilos y los oyentes.
(En listeres consigo algo como com.djdance.android.main $ 53 )