Domanda

Attualmente ho difficoltà a chiamare getApplicationContext (). setTheme () in un'attività, voglio solo applicare una risorsa tema in un ambito applicazione anziché in ambito attività in stile codice , ma il problema è che non funziona affatto, qualcuno può spiegarlo.

Grazie mille.!

È lo scheletro del codice:

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);
    }
}
È stato utile?

Soluzione

Ho avuto lo stesso problema in precedenza e non ho trovato il modo di risolverlo. Solo Dio sa perché, ma ho anche visto ingegneri del framework Android (credo che fosse Dianne Hackborn) dire che l'impostazione di temi come questo è scoraggiata.

Imposta invece il tema per la tua attività nel manifest e funzionerà.

Altri suggerimenti

puoi usare setTheme (..) prima di chiamare setContentView (...) e super.oncreate () e dovrebbe funzionare multa

Quando chiami setTheme () nel contesto della tua applicazione? Deve essere chiamato prima di creare un'istanza di qualsiasi vista.

  

puoi usare setTheme (..) prima di chiamare setContentView (...) e    super.oncreate () e dovrebbe funzionare bene

È stato corretto in sdk 4.0 (potrebbe essere precedente).

Non ho provato questo da solo, ma se fosse assolutamente necessario impostare il tema in modo programmatico, la prossima cosa che proverei sarebbe quella di derivare una classe dall'applicazione e sovrascrivere il metodo onCreate come nel seguente:

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

    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top