Ändern der TimePicker-Textfarbe

8

Ich habe versucht, die Textfarbe meines Timepickers zu ändern. Aber ich kann nicht finden, wo der Elternstil sich befindet. Ich habe beide ausprobiert %Vor%

und

%Vor%

Mein minSdkVersion ist 15. Mein targetSdkVersion ist 20. Ich habe mein Projekt neu erstellt und geputzt.
Ich denke, ich habe jede ähnliche Frage zu SO durchgemacht und keine von ihnen hat wirklich eine Lösung für mich bereitgestellt. Die einzige Antwort, die vielleicht funktionieren könnte, ist eine Art Bibliothek, aber ich bin kein großer Fan dieser Lösung. Ist der Pfad zum Eltern etwas anderes als das, was ich benutze, weil ich mir ziemlich sicher bin, dass ich irgendwie darauf zugreifen kann?

Bearbeiten
So wird das Thema angewendet;

%Vor%

Bei einer Notiz ist dies der Fehler, den ich erhalte (vergessen habe, ihn vorher zu platzieren):

  

Fehler: Fehler beim Abrufen des übergeordneten Elements für das Element: Es wurde keine Ressource gefunden, die dem angegebenen Namen '@android: style / Widget.Holo.TimePicker' entspricht.

Bearbeiten 2 Ein paar der Fragen, die ich mir angesehen habe, um das Problem zu lösen:

  1. Wie kann ich TimePicker überschreiben, um die Textfarbe zu ändern - Ich denke, diese Frage kommt einer Antwort so nahe wie möglich, aber ich bin mir nicht ganz sicher, was ich tun soll. Muss ich den androiden TimePicker-Stil in mein Projekt importieren?
  2. Ссылка - Es wird keine Antwort gegeben.
  3. Wie kann ich die Textfarbe meines Zeitpickers und ändern? Datepicker? - versuchte die 0 Stimmen zu beantworten, aber es hat nicht funktioniert.
  4. Wie ändert man die Standardfarbe? des DatePicker und TimePicker Dialogs in Android? - Wieder kann der TimePicker nicht auf ähnliche Weise gefunden werden.
  5. Android - Wie ändere ich die textColor in einem TimePicker? - Erneut kann der eigentliche TimePicker-Elternteil nicht gefunden werden.

Dies sind wahrscheinlich die besten Fragen / Antworten auf mein Problem, aber keine von ihnen hilft mir. Es wäre schön, eine definitive Antwort darauf zu bekommen.

    
Bono 24.09.2014, 11:30
quelle

3 Antworten

20

Ich habe Paul Burkes Antwort und Simon's Antwort , um die Textfarbe von TimePicker erfolgreich zu bearbeiten.

So wird es gemacht:

%Vor%     
Bono 30.09.2014, 16:56
quelle
4

Sie sind sich nicht sicher, warum Sie hierfür in die Java Reflection API eintauchen müssen. Es ist ein einfaches Styling. Das Attribut, das Sie überschreiben müssen, lautet: textColorPrimary .

%Vor%

Wenn Sie TimePicker in Dialog verwenden, überschreiben Sie android:textColorPrimary im Thema des Dialogfelds.

Das ist es.

    
Vikram 28.03.2015 08:05
quelle
3

A TimePicker ist wirklich nur zwei NumberPicker s. Wenn Sie in den Widget.NumberPicker Stil und das Layout schauen, werden Sie feststellen, dass es

verwendet %Vor%

Leider verwendet TextAppearance.Large.Inverse.NumberPickerInputText keines der Attribute, die Sie in Ihrem Design festlegen können. Sie haben also zwei Möglichkeiten:

  1. Kopieren Sie die erforderlichen Klassen, um Ihre eigene Version von NumberPicker und TimePicker zu erstellen. (Möglicherweise können Sie etwas aus Bibliotheken wie HoloEverywhere ) extrahieren

  2. Verwenden Sie Hacks.

Wenn Sie die zweite Route verwenden möchten, können Sie dies tun:

%Vor%

BEARBEITEN

Nach weiteren Untersuchungen funktioniert dieser Hack nicht wirklich gut. Sie können die Farbe der Werte für NumberPicker über / unter nicht ändern. Die Farbe wird auch zurückgesetzt, nachdem die Verwendung mit ihr interagiert hat. Es scheint, dass Ihre einzige Option darin besteht, Ihre eigenen Kopien der notwendigen Klassen zu erstellen (Option 1 oben).

    
Paul Burke 27.09.2014 14:38
quelle

Tags und Links