2016-03-25 4 views
0

Ich bin ziemlich neu in Android. Ich arbeite an einer Aktivität, bei der der Benutzer eine Taste drücken kann und ein Farbauswahldialog, den ich bereits implementiert habe, erscheint. Der Benutzer kann zwischen einer Array-Liste verschiedener Farben wählen. Problem: Ich möchte, dass die vom Benutzer gewählte Farbe auf das ActionBar Top-Menü angewendet wird. Gibt es eine Möglichkeit, weil ich nur Lösungen gefunden habe, bei denen der Entwickler die Farbe "manuell" im Code ändern muss. Ich denke, ich muss die Methode public void onColorSelected (int color) verwenden, die mit dem ColorPickerDialog implementiert wurde, aber ich habe keine Idee, wie man die ActionBar verknüpft.Aktionsbalken individuell ändern?

Danke.

+0

Mögliche Duplikat von [Wie _really \ \ _ programmgesteuert Primär- und Akzentfarbe in Android Lollipop ändern?] (http://stackoverflow.com/questions/25815769/how-to-really-programmatic-change-primary-and-accent-color-in-android-loll) –

Antwort

0

Sie können die Farbe der wie folgt ActionBar ändern:

//Change Color.GREEN for your own color from the Color Picker 
ColorDrawable color = new ColorDrawable(Color.GREEN); 
getSupportActionBar().setBackgroundDrawable(color); 

Wenn Sie die Support-Bibliothek verwenden diese stattdessen verwenden:

//Change Color.GREEN for your own color from the Color Picker 
ColorDrawable color = new ColorDrawable(Color.GREEN); 
getActionBar().setBackgroundDrawable(color); 
+0

Danke für die Antwort. Ich habe es versucht, aber es gibt mir einen Fehler: "java.lang.NullPointerException: Versuch, virtuelle Methode 'void android.app.ActionBar.setBackgroundDrawable (android.graphics.drawable.Drawable)' auf eine Null-Objekt-Referenz" – AndrIOS

+0

hast du es auch mit getSupportActionBar() versucht? – leonziyo

Verwandte Themen