2012-10-01 16 views
6

So habe ich einen Spinner und ich war erfolgreich nach unten, aber ich bin nicht in der Lage, die Farbe der Elemente in dem Dropdown-Menü ändernSpinner Drop in das Ändern der Farbe des ausgewählten Elements Menüpunkte Farbe (Android)

Das ist mein spinner_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textSize="13sp" 
    android:textColor="#33CCFF"   
/> 

und das ist mein styles.xml

<resources> 
    <style name="AppTheme" parent="android:Theme.Light" > 
    <item name="android:spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem.Color</item> 
    <item name="android:spinnerItemStyle">@style/SpinnerItem</item> 
    </style> 
    <style name="SpinnerItem.DropDownItem.Color" parent="@android:style/Widget.DropDownItem.Spinner"> 
     <item name="android:textColor">#4FBDE8</item> 
    </style> 

    <style name="SpinnerItem" parent="@android:style/Widget.TextView.SpinnerItem"> 
     <item name="android:textColor">#4FBDE8</item> 
    </style> 
</resources> 

gibt es eine XML-Methode, in der ich es tun kann?

Antwort

3

Hier ist die Lösung I

<style name="Theme.NoTitleBar.WithColoredSpinners" parent="@android:style/Theme.NoTitleBar"> 
    <item name="android:spinnerItemStyle">@style/SpinnerItem</item> 
    <item name="android:spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem</item> 
</style> 

<style name="SpinnerItem" parent="@android:style/Widget.TextView.SpinnerItem"> 
    <item name="android:textColor">#00FF00</item> 
</style> 

<style name="SpinnerItem.DropDownItem" parent="@android:style/Widget.DropDownItem.Spinner"> 
    <item name="android:textColor">#FF0000</item> 
</style> 

+1

Funktioniert nicht. Drop-Down-Farbe ändert sich nicht –

1

auf einem anderen Thread gefunden Stackoverflow Während eine Layout Ressourcendatei für den Spinner Angabe, müssen Sie es an zwei Stellen setzen.

  1. Während erklärt ein neues ArrayAdapter

    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, R.layout.spinner_item, categories); 
    
  2. Während die dropDownViewResource auf dem Array-Adapter setzen.

    dataAdapter.setDropDownViewResource(R.layout.spinner_item_dropdown); 
    

Beachten Sie, dass zwei verschiedene Layout-Dateien verwendet wurden. Sie können Ihre Ansichten auf folgende Weise anpassen, indem Sie die Stile definieren und diese Stile als Design in den jeweiligen Layouts verwenden.

<style name="SpinnerItem" parent="@android:style/Widget.TextView.SpinnerItem"> 
    <item name="android:textColor">@color/white</item> 
    <item name="android:background">@color/black</item> 
</style> 

<style name="SpinnerItem.DropDownItem" parent="@android:style/Widget.DropDownItem.Spinner"> 
    <item name="android:textColor">@color/black</item> 
</style> 

Hoffe, das hilft.

+0

Funktioniert nicht in Dropdown –

+1

Es funktionierte für mich. Können Sie das genaue Problem, mit dem Sie konfrontiert sind, beschreiben? –

+1

Nichts passiert wirklich, die Textfarbe ändert sich nicht im Hintergrund –

Verwandte Themen