Für den folgenden Code beabsichtigte ich, das Systemdatum zu erhalten und es gemäß der Formatierung des aktuellen Gebietsschemas anzuzeigen, es ist nur das für das R.string.date
. Im Emulator erscheint es immer als eine lange Zahl (etwas wie 821302314) anstelle von "Date:", die ich bereits in string.xml
externalisiert habe. Kann mir jemand helfen, einen Blick darauf zu werfen, warum das so ist?
R.string.date
ist in der Tat ein int
, Sie verpassen den Aufruf an getText()
oder getString()
:
Noch besser: Erstellen Sie die Zeichenfolge nicht in Ihrem Code, sondern verwenden Sie eine Vorlage mit getString(int resId, Object... formatArgs)
:
und in deinem string.xml
:
Ja, Sie erhalten die ID der Zeichenfolge, wenn Sie R.string.date verwenden. Wie in den Dokumenten
angegebenSie können entweder getString (int) oder getText (int) verwenden, um eine Zeichenfolge abzurufen. getText (int) behält jeden auf die Zeichenfolge angewendeten Rich-Text-Stil bei.
Beispiel:
%Vor%Lesen Sie hier darüber nach: getString
Um alle "R.string. *" auf "getString (R.string. )" zu überschreiben * habe ich ein wenig Regex geschrieben.
Diese Regex ignoriert auch die Strings, die bereits einen "getString" haben.
%Vor%Sie müssen nur Strg + Umschalt + R in Android Studio drücken, um das Replace-Terminal zu öffnen und den Regex oben als "Find" und als "Replacement" den Regex darunter einzufügen.
%Vor%Vergessen Sie nicht, das Kontrollkästchen "regulärer Ausdruck" zu aktivieren.
Für mich hat das perfekt funktioniert. Aber das "Find Regex" hat ein Problem, es findet nur R.string, wenn es mit einem Leerzeichen beginnt. Ich weiß nicht, wie ich das lösen soll, denn wenn ich das Leerzeichen lösche, finde ich auch die R.string, die schon den "getString" hat.
Einige können helfen, die Regex zu verbessern oder haben einen besseren Weg, dies zu erreichen.
Tags und Links android date-format