¿Por qué getApplicationContext (). SetTheme () en una actividad no funciona?

StackOverflow https://stackoverflow.com/questions/1823724

  •  22-07-2019
  •  | 
  •  

Pregunta

Actualmente tengo dificultades para llamar a getApplicationContext (). setTheme () en una actividad, solo quiero aplicar un recurso de tema en un ámbito de aplicación en lugar del ámbito de actividad en estilo de código , pero el problema es que esto no funciona en absoluto, ¿alguien puede explicarlo?

¡Muchas gracias!

Él es el esqueleto del código:

public class StartUp extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    /*
     * setTheme(android.R.style.Theme_Black_NoTitleBar_Fullscreen);
     * //that works!
     */
       this.getApplicationContext().setTheme(
            android.R.style.Theme_Black_NoTitleBar_Fullscreen);
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
    }
}
¿Fue útil?

Solución

Tuve el mismo problema antes y no encontré una manera de solucionarlo. Solo Dios sabe por qué, pero incluso he visto a ingenieros de marcos de Android (creo que fue Dianne Hackborn) decir que se desaconseja configurar temas como este.

Establezca el tema para su Actividad en el Manifiesto en su lugar, y funcionará.

Otros consejos

puede usar setTheme (..) antes de llamar a setContentView (...) y super.oncreate () y debería funcionar bien

¿Cuándo llamas a setTheme () en el contexto de tu aplicación? Debe llamarse antes de crear instancias de vistas.

  

puede usar setTheme (..) antes de llamar a setContentView (...) y    super.oncreate () y debería funcionar bien

Se solucionó en SDK 4.0 (puede ser anterior).

No lo intenté yo mismo, pero si fuera absolutamente necesario establecer el tema mediante programación, lo siguiente que intentaría sería derivar una clase de la Aplicación y anular el método onCreate como en el siguiente:

public class MyApplication extends android.app.Application {
    @Override
    public void onCreate() {
        super.onCreate();
        setTheme(android.R.style.Theme_Black_NoTitleBar_Fullscreen);

    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top