J'essaie d'avoir 2 options de thème pour mon application, Dark and Light. Lorsque le thème sombre est sélectionné, j'utilise sharedpreference pour enregistrer et appliquer le thème au démarrage. Mais lorsque je tente de changer la couleur d'arrière-plan de la barre d'outils & appBarLayout comme ceci:Modifier la barre d'outils et AppBarLayout Contexte onCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
long currentTheme = sharedPref.getInt(getString(string.current_theme), 0);
if (currentTheme == 0) {
this.setTheme(R.style.AppTheme_NoActionBar);
}
if (currentTheme == 1) {
this.setTheme(R.style.AppTheme_NoActionBar_Dark);
Toolbar toolbar = (Toolbar) findViewById(id.toolbar);
setSupportActionBar(toolbar);
toolbar.setBackgroundColor(getResources().getColor(ActionbarDark));
}
Logcat renvoie l'erreur: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.Toolbar.setBackgroundColor(int)' on a null object reference
Et je ne peux pas comprendre pourquoi
Mise à jour: Correction en utilisant la répondez depuis @Nilesh Rathod et changez le thème de l'activité avant de définir la vue du contenu, puis après avoir défini la vue du contenu en changeant le thème de la barre d'outils et AppBarLayout.
barre d'outils Barre d'outils = (barre d'outils) findViewById (R.id.toolbar); Vous avez manqué R ici. –