En Android, puede obtener el tema actual de una actividad como un objeto Resource.Theme
de getTheme()
. Además, puede establecer el tema en uno diferente a través de la identificación de recursos de ese otro tema, como en setTheme(R.style.Theme_MyTheme)
.Android: ¿Cómo obtener el ID del recurso del tema actual?
Pero, ¿cómo puedo saber si vale la pena, si el tema actual ya es el que me gustaría establecer? Busco algo así como getTheme().getResourceId()
, con el fin de escribir algo como:
protected void onResume() {
int newThemeId = loadNewTheme();
if (newThemeId != getTheme().getResourceId()) { // !!!! How to do this?
setTheme(newThemeId);
// and rebuild the gui, which is expensive
}
}
¿Alguna idea?
No creo que el ID de recurso sea un atributo de la clase Theme. El tema puede crearse a partir del archivo reource xml, pero luego se pierde la referencia a la ID. El tema en sí podría cambiarse, y entonces no tendría ningún significado que se vincule con una determinada ID de recurso. Aún más, el tema podría crearse sobre la marcha en código. Tendrá que hacer un seguimiento de qué identificador de reutilización se utilizó para el tema actual usted mismo. – Anderson
Esta respuesta te ayudará. Consulte este http://stackoverflow.com/a/26302184/4639479 –