Wie ändere ich den Textstil eines Spinners?

Ich schaffe einen Spinner in meinen Layout-XML-Dateien und setze ein String-Array auf diesen Spinner. Wenn ich den textstyle des spinners ändere, ist der text nicht von den änderungen betroffen

Ich lese in den googlegroups, dass ein Spinner keinen Text hat und deshalb kann der Textstil nicht geändert werden und ich muss den Stil der Textansicht ändern, die im Spinner gezeigt wird. Aber wie kann ich das machen? Vorzugsweise in meiner XML-Datei.

  • Android: Spinner Hinweis
  • Spinner Dropdown Pfeil
  • Wie kann ich onItemSelected in Android verwenden?
  • Populäre Spinner mit Jahren dynamisch in Android?
  • Warum zeigt mein Android-Spinner das Optionsfeld in der Textansicht an?
  • Wie zu erkennen, ob das Dropdown-Menü oben oder unter dem Spinner in android angezeigt wird?
  • Wie man an Einem Artikel ausstellt, wählen Sie nicht automatisch den ersten Eintrag
  • Set Gujarati Text auf Spinner in Android
  • 5 Solutions collect form web for “Wie ändere ich den Textstil eines Spinners?”

    Wenn du den Adapter schaffst, der den Spinner unterstützt, kannst du ein Layout für die Spinner-Item setzen.

    spinner.setAdapter(new ArrayAdapter(this, R.id.some_text_view)); 

    Sie können some_text_view so gestalten, wie Sie es wollen.

     <TextView android:id="@+id/some_text_view" android:textStyle="bold" /> 

    Wie mein Vorgänger angegeben, können Sie es nicht auf der Haupt-XML-Layout-Datei, wo die Spinner-Komponente ist.

    Und die Antwort oben ist nett, aber wenn wir die Best Practices von Google nutzen wollen, wie du weißt … um Styles für alles zu benutzen … kannst du es in 3 'einfachen' Schritten wie folgt machen:

    Schritt 1: Du brauchst eine zusätzliche Datei unter deinem Layout-Ordner mit dem Look für die Spinner-Items:

     <?xml version="1.0" encoding="utf-8"?> <TextView android:id="@+id/textViewSpinnerItem" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/SpinnerTextViewItem" xmlns:android="http://schemas.android.com/apk/res/android" /> 

    Nennen Sie diese Datei: spinner_item_text.xml

    Schritt 2: Dann, auf deiner Aktivitätsklasse, wenn du den Spinner mit einer Reihe von Items fülltest:

     adapter = new ArrayAdapter<CharSequence>(this, R.layout.spinner_item_text, items); spinner.setAdapter(adapter); 

    Beachten Sie, dass die Ressource R.layout.spinner_item_text in der eigenen R-Datei ist.

    Schritt 3: Unter deinem Werteordner erstellen oder verwenden Sie (Sie haben vielleicht schon einen) die Datei styles.xml. Der Style-Eintrag muss so aussehen:

     <style name="SpinnerTextViewItem" parent="@android:style/Widget.TextView" > <item name="android:textSize" >8dp</item> <item name="android:textStyle" >bold</item> </style> 

    Und das ist es!

    So weit war es wirklich, wirklich praktisch, um alles über Textgrößen, Stile, Farben, etc. … auf einer styles.xml-Datei zu setzen, also ist es einfach zu pflegen.

    Nur über XML

    Als Follow-up zu @Cyril REAL's hervorragende Antwort, hier ist eine gründliche Umsetzung, wie Sie Ihre Spinner nur durch XML Stil, wenn Sie Ihre Spinner über android:entries .

    Die obigen Antworten funktionieren, wenn du deinen Spinner per Code kreisst , aber wenn du deine Spinner Einträge über XML, dh mit android:entries , android:entries , kannst du die Textgröße und andere Attribute mit den beiden folgenden Themeneinstellungen anpassen:

    In deinem res / values ​​/ styles.xml

     <?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppBaseTheme" parent="android:Theme.Holo"> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <!-- For the resting Spinner style --> <item name="android:spinnerItemStyle"> @style/spinnerItemStyle </item> <!-- For each individual Spinner list item once clicked on --> <item name="android:spinnerDropDownItemStyle"> @style/spinnerDropDownItemStyle </item> </style> <style name="spinnerItemStyle"> <item name="android:padding">10dp</item> <item name="android:textSize">20sp</item> <item name="android:textColor">#FFFFFF</item> </style> <style name="spinnerDropDownItemStyle"> <item name="android:padding">20dp</item> <item name="android:textSize">30sp</item> <item name="android:textColor">#FFFFFF</item> </style> </resources> 

    Eigentlich kannst du den Spinner-Text per xml anpassen.

    In Ihrem eigenen Stil definieren Sie:

     <item name="android:spinnerItemStyle">@style/yourStyleForSpinnerItem</item> 

    Und definiere diesen Stil auch:

     <style name="yourStyleForSpinnerItem"> //stuff you want for the item style </style> 

    Wenn du den Spinner-Adapter im Java-Code instanziierst, kannst du den Standard android.R.layout.simple_spinner_item verwenden

    Wenn du keine solchen Workarounds willst, gibt es einen einfachen Weg. Holen Sie sich die Textansicht vom Spinner und ändern Sie die Parameter:

     TextView tv = (TextView) spin.getSelectedView(); tv.setTypeface(Typeface.DEFAULT_BOLD); //to make text bold tv.setTypeface(Typeface.DEFAULT); //to make text normal 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.