2016-04-26 22 views
0

Ich habe folgende Spinner xml-Code:Spinner Textfarbe in Java-Code/Android ändern?

<Spinner 
    android:id="@+id/spinnerMain" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="30dp" 
    android:layout_weight="0.40" 
    android:textColor="@color/black" 
    android:background="@drawable/rounded_white_rectangle"/> 

und den folgenden Java-Code:

public void setMainCategories (String [] Hauptkategorien) {

ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mainCategories); 
    spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnerMain.setAdapter(spinnerArrayAdapter); 

} 

@Override 
public void setSubcategories(String[] subCategories) { 
    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, subCategories); 
    spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnerSub.setAdapter(spinnerArrayAdapter); 

und ich bin nicht sicher, wie man den Java-Code ändert, damit der Text seine Farbe ändert.

Haben Sie Vorschläge? Würde ich sehr zu schätzen wissen.

+0

Möchten Sie die Farbe des Textes im Dropdown oder der ausgewählten auswählen? –

+0

Sie müssen einen benutzerdefinierten Adapter implementieren – Skynet

+0

Ich brauche jeden Text im Spinner in schwarz, die Hauptkategorie ein mutiger schwarz. Danke – ti3kto3k

Antwort

0

Erstellen Sie eine benutzerdefinierte XML-Datei für Ihr Spinner-Element.

spinner_item.xml:

Geben Sie Ihre individuelle Farbe und Größe in dieser Datei in Text.

<?xml version="1.0" encoding="utf-8"?> 

<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textSize="20sp" 
    android:gravity="left" 
    android:textColor="#FF0000"   
    android:padding="5dip" 
    /> 

nun diese Datei verwenden, um Ihre Spinner Veröffentlichungen wie:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_item,list); 

hoffen, dass es hilft Ihnen :)

1

Sie können das Aussehen der Dropdown Angebote im Spinner über Styles ändern:

einen Stil XML hinzufügen und verwenden Sie den eingebauten Android Attribut:

<style name="mystyle"> 
    <item name="android:spinnerDropDownItemStyle">@style/spinner_drop_item_style</item> 
</style> 
<style name="spinner_drop_item_style"> 
    <item name="android:textAppearance">?android:attr/textAppearanceLarge</item> 
    <item name="android:textColor">@color/black</item> 
    <item name="android:paddingLeft">8dp</item> 
    <item name="android:gravity">center_vertical|start</item> 
    <item name="android:orientation">vertical</item> 
    <item name="android:background">@drawable/apptheme_list_selector</item> 
</style> 

Je nach Anwendungsfall ist eine benutzerdefinierte Ansicht wie @Jhaman möglicherweise die einfachere Lösung.

BEARBEITEN: Sie haben den Style auch irgendwie auf Ihre Ansicht oder Anwendung angewendet. Die documentation erklärt dies gut, aber insgesamt sind das Style-System und die verschiedenen Attribute nicht so gut beschrieben.