À strictement répondre à la question: Utilisez invalidate():
public void invalidate ()
Depuis: l'API de Niveau 1
La nullité de l'ensemble de la vue. Si la vue est visible, onDraw(Canvas) sera appelée à un certain moment dans l'avenir. Ce doit être appelé à partir d'un thread d'INTERFACE utilisateur. Pour appeler à partir d'un non-thread de l'INTERFACE utilisateur, appelez postInvalidate().
ViewGroup vg = findViewById (R.id.mainLayout);
vg.invalidate();
Maintenant, lors de la reprise de l'Activité, il met tout en Vue de dessiner lui-même. Pas d'appel à la invalidate() ne devraient pas être nécessaires. Pour appliquer le thème, assurez-vous de le faire avant de tout point de Vue est établi, c'est à dire, avant d' setContentView(R.layout.mainscreen);
public void setTheme (int resid)
Depuis: l'API de Niveau 1
Définir le thème de base de ce contexte. Notez que cette opération doit être appelée avant tout points de vue sont instanciés dans le Contexte (par exemple avant d'appeler setContentView(point de Vue) ou gonfler(int, ViewGroup)).
La doc API de référence est ici: http://developer.android.com/reference/android/view/ContextThemeWrapper.html#setTheme%28int%29
Depuis le onDraw() la méthode fonctionne sur instanciée déjà Vues, setTheme ne fonctionnera pas. Je n'ai aucune expérience avec les thèmes de moi-même, mais le choix entre deux options que je peux penser sont:
- appel setTheme dans onCreate() à la place, ou
- refaire setContentView (R. layout.écran principal); à force de retrouver toutes les mise en page.