Wie kann ich die Farbe ändern von der textView android.R.layout.simple_spinner_dropdown_item?
Ich bin erstellen einer SpinnerAdapter mit dem integrierten Ressourcen-ID-android.R.layout.simple_spinner_dropdown_item
SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.action_list, android.R.layout.simple_spinner_dropdown_item);
aber die textView, die die Ressource-ID erstellt, Textfarbe Schwarz und ich brauche eine andere Farbe. Was ist der beste Weg, das zu ändern die Farbe, aber um alles sonst der gleichen?
Wenn ich versuchen und meine eigene textView-layout Ressource in einer xml-Datei, z.B.
<?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:textColor="@color/White"
/>
dann ist es nicht in der gleichen Weise Verhalten, wie android.R.layout.simple_spinner_dropdown_item, weil z.B. die Polsterung ist anders. So
- Gibt es eine Möglichkeit, meine eigene layout-Ressource in einer xml-Datei, die erbt alles von android.R.layout.simple_spinner_dropdown_item und mir erlaubt das überschreiben der Textfarbe?
- Oder ist die vollständige definition von android.R.layout.simple_spinner_dropdown_item irgendwo?
- Oder vielleicht gibt es sogar noch einfacher irgendwie?
Diese Frage bezieht sich auf eine andere Frage, ich habe mich heute gefragt (Können nicht ändern die Farbe des Textes mit Android Action Bar drop-down-navigation). Ich habe gemerkt, dass eine Antwort auf diese Frage (und daher diese Frage) ist, um meine eigene ArrayAdapter
Klasse, die erbt von ArrayAdapter<T>
so, dass ich immer die Farbe im code, wenn der ArrayAdapter gewöhnt (siehe meine Antwort). Aber das scheint wie eine sehr umständliche Lösung :-|.
Ändern einer Textfarbe sollte nicht eine schwierige Aufgabe!
InformationsquelleAutor Stochastically | 2013-04-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, aber Sie können cut & fügen Sie Ihre Lieblings-version von
simple_spinner_dropdown_item.xml
in eine neue Datei dann ändern Sie einfach die Farbe des Textes.Ja, aber es gibt viele verschiedene Versionen. Die API gefällt dir? Auch haben Sie vielleicht eine Kopie auf Ihrer Festplatte bereits, überprüfen
<android-sdk>/platforms/android-xx/data/res/layout/
(woxx
ist eine bestimmte API.)Als Alternative Methode können Sie erstellen eine benutzerdefinierte Adapter und ändern Sie den text Farbe nach, die Sie aufblasen jede Zeile, aber die oben genannte Methode wird etwas schneller, da es nicht um jeden Lauf der Zeit ändert.
+1 für deine Gedanken...ich Hinzugefügt, um Ihre Lösung, denn das funktioniert nicht sofort, ohne änderungen.
InformationsquelleAutor Sam
Erweitern auf Sam ' s-Lösung, müssen Sie die Datei ändern, die in sehr spezifischer Weise zu überschreiben Android-Stile.
Nach dem kopieren der
simple_spinner_dropdown_item.xml
aus dem sdk-Ordner in das richtige layout Ordner, in dem Sie arbeiten, werden Sie sehen, dieser code:Damit den hintergrund ändern, der TextView und vermeiden Sie diese Fehler:
Ihr code muss wie folgt Aussehen:
Die andere wesentliche änderung, die vorgenommen werden muss ist, zu erstellen Sie Ihren eigenen Stil. Sie haben wahrscheinlich eine styles.xml Datei, so fügen Sie einen neuen Stil ähnlich wie diese:
Vorausgesetzt, Sie haben etwas in Ihrem colors.xml Datei, können Sie die Farbe via "@color/green" oder welche Farbe auch immer Sie wählen (natürlich können Sie die Verwendung von @android:color/...) nicht zu vergessen all die anderen Elemente, die Sie hinzufügen können, ändern Sie die TextView.
InformationsquelleAutor whyoz
Ohne Verwendung von benutzerdefinierten adapter ist es unmöglich, zu ändern die Farbe von
Besser, erstellen Sie einen benutzerdefinierten adapter und dann können Sie die Farbe ändern, testSixe, textStyle, etc.
InformationsquelleAutor Parijat Bose