Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

idontknow

unregistriert

1

16.06.2015, 23:44

Android: Textfarbe mittels eines Themes wechseln in einem Selector mit unterschiedlichen states!

Moin,

ich meld mich mal mit einer Android Frage, vielleicht gibt es hier ja ein paar Android-Entwickler.

Folgendes Szenario: Ich will die Farbe einer View über ein Theme ändern, wobei ich allerdings insbesondere die Farbe bei einem bestimmten Zustand abhängig vom Theme anpassen möchte! Dazu habe ich einen Farbselector erstellt mit 2 states auf den ich im textColor Attribut meiner View referenziere. Für die Farbe habe ich ein Custom Attribut (format=reference|color) erzeugt dem ich in meinen beiden Themes eine konkrete Farbe zuweise. Auf dieses Custom Attribut möchte ich dann in einem bestimmten state meines Selectors zugreifen.
Das ganze soll dann so aussehen, wobei mein View genau diesen Selector als textColor verwenden soll:

Quellcode

1
2
3
4
5
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="true" android:color="#ffffff" />
    <item android:state_enabled="false" android:color="?attr/ThemeTest"/>
</selector>


Anstatt die korrekte Theme basierte Farbe anzuzeigen wird mir aber immer rot angezeigt. Ich tippe mal, das soll ein Fehlerwert sein. In logcat gab es keine Ausgabe diesbezüglich. Außerdem wird die korrekte Farbe verwendet, wenn ich im textColor Attribut meiner View direkt auf "?attr/ThemeTest" referenziere. D.h. das Custom Attribut funktioniert generell eigentlich schon, nur speziell in einem bestimmten state macht es Probleme!

Ich bin jetzt etwas überfragt. Generell habe ich eigentlich relativ viel herumprobiert und versch. Sachen ausprobiert unter anderem über definieren von Custom Style und ähnliches und immer gab es das Fehler-Rot! Die Frage habe ich übrigens auch auf stackoverflow gepostet, allerdings ohne eine Antwort (bisher). Trotzdem der Link, tendentiell ist es dort etwas präziser und ausführlicher beschrieben: https://stackoverflow.com/questions/3086…ifferent-states

Wäre top, wenn jemand eine Lösung für das Problem hat. Hat mich bisher etwas gefrustet und finde es sehr ärgerlich, dass ich es nicht hinbekomme, an für sich ist es ja aus Android Sicht etwas sehr triviales. Meine Vermutung ist ja, dass irgendein Context nicht passt in meinem Selector und deswegen das referenzieren nicht funktioniert, aber ich wüsste nichtmal genau wie ich das prüfen sollte..

Gruß,
idk