¿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 )

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.