2016-05-28 17 views
0

Ich versuche, meine Tasten Farben aus den aktuellen Themen Attribute geben: android.R.attr.colorPrimary oder R.attr.colorPrimary, die Gelb zurückgeben sollte, aber gibt mir eine blaue Farbe die ganze Zeit stattdessen! Ich habe das Thema auch im Manifest festgelegt.android.R.attr.colorPrimary gibt mir die falschen Farben die ganze Zeit

Einstellung zum Beispiel die Hintergrundfarbe der Symbolleiste mit android:background="?attr/colorPrimary" gibt die richtige Farbe, aber nicht, wenn es aus dem Code festgelegt.

Dies ist, wie ich versuche, die Farbe meiner Taste einstellen:

TypedValue typedValue = new TypedValue(); 
    App.getAppContex().getTheme().resolveAttribute(android.R.attr.colorPrimary, typedValue, true); 
    buttonColor = typedValue.data; 


    addButton.setText("SAVE"); 
    addButton.getBackground().setColorFilter(buttonColor, PorterDuff.Mode.MULTIPLY); 

Das ist mein "Yellow" Thema

<style name="AppTheme_Yellow" parent="Theme.AppCompat.Light.NoActionBar"> 
    <item name="colorPrimary">@color/primaryYellow</item> 
    <item name="colorPrimaryDark">@color/primary_darkYellow</item> 
    <item name="colorAccent">@color/accentYellow</item> 
    <item name="android:textColorPrimary">@color/primary_textYellow</item> 
    <item name="android:textColorSecondary">@color/secondary_textYellow</item> 
    <item name="android:icon">@color/iconsYellow</item> 
    <item name="actionOverflowButtonStyle">@style/OverFlowStyle</item> 
    <item name="popupMenuStyle">@style/popupMenuStyle</item> 

Die Farben hinter dem "Yellow" Thema:

<color name="primaryYellow">#FFC107</color> 
<color name="primary_darkYellow">#FFA000</color> 
<color name="primary_lightYellow">#FFECB3</color> 
<color name="accentYellow">#607D8B</color> 
<color name="primary_textYellow">#212121</color> 
<color name="secondary_textYellow">#727272</color> 
<color name="iconsYellow">#212121</color> 
<color name="dividerYellow">#B6B6B6</color> 
+0

Wo setzen Sie diese Werte? – AkashBhave

+0

In der DialogFragment-Klasse, die die Schaltfläche enthält – Muddz

+0

Nevermind Ich habe gerade gelöst! Ich habe den falschen Kontext benutzt! Ich werde die Antwort posten. @ AkashBhave – Muddz

Antwort

2

Ich habe das Problem im globalen Anwendungskontext gefunden, den ich verwendet habe. App.getAppContex().getTheme().resolveAttribute(android.R.attr.colorPrimary, typedValue, true);

So muss man die die getActivity() oder den Kontext der Tätigkeit verwenden, wenn die UI Wigdets in inilitized ist:

getActivity().getTheme().resolveAttribute(android.R.attr.colorPrimary, typedValue, true); 
Verwandte Themen