2017-02-17 11 views
0

Meine App verwendet eine Menge statischen Text und ich versuche, eine optimale Möglichkeit zu finden, diesen Text anzuzeigen und anzuzeigen. Für den Moment muss ich mich nicht darauf konzentrieren, den Text so zu lokalisieren, dass der ganze Text in die strings.xml geht und das viele Formatierungsalpträume präsentiert.Die beste Methode, um statischen Text persistent zu halten

Natürlich ist es nicht 100% statischer Inhalt, ich habe manchmal dynamische Werte drin, die in meinem Fall innerhalb strings.xml bleiben können, also, was ist der richtige Weg, um diesen statischen Text zu behalten?

+0

Wenn ich Sie wäre, würde ich Thema im statischen String-Array platzieren. – pooyan

+0

Sie sagten, es gibt bereits Strings, die in der 'strings.xml' bleiben, also würde ich den Text dort behalten. Sonst wirst du eine Menge Text haben, der nur an mehreren Stellen verstreut ist. Das wird für jeden, der diesen Code liest, verwirrend sein. Außerdem ist es einfacher zu aktualisieren, wenn Sie sich um die Lokalisierung kümmern. – DeeV

+0

Wahr, aber ich möchte sicherstellen, dass die Formatierung in der App konsistent ist. Ja, ich möchte die Strings nicht in verschiedene Dateien in der App aufteilen. –

Antwort

3

Statischer Textinhalt ist genau das, was Sie verwenden möchten strings.xml für, und Sie erhalten automatisch den zusätzlichen Bonus der einfacheren Lokalisierung, da Sie verschiedene strings.xml für die verschiedenen Sprachen haben können. Keine Codeänderungen erforderlich, nur andere XML-Dateien.

Dynamische Inhalte werden Inhalte sein, die sich aufgrund von Benutzereingaben ändern. Sie können weiterhin strings.xml verwenden, um den statischen Teil (falls vorhanden) dieses dynamischen Inhalts zu speichern. Wie die Zeichenfolge "Format" können Sie an String.format() oder etwas Ähnliches übergeben.

die Ressourcen Unterstützung für diese, es ist genau das, was es tun sollte (und tun es effizient.)

+0

Ja, aber abgesehen von grundlegende Formatierung, um mehrere Zeilen zu unterstützen, frage ich, ob es einen besseren Ansatz gibt oder sind meine Optionen auf '' strings.xml''' beschränkt? –

+0

Ihre beste, flexibelste und wartungsfreundlichste Herangehensweise ist die Verwendung von 'strings.xml'. Die andere (n) Option (en) würde beinhalten, die Strings in Ihrem Code zu fixieren, was für die Wartung oder Internationalisierung nicht gut ist. –

0

Sie eine Klasse erstellen, könnte StaticBuffer oder etwas mit einem statischen String-Array als Datenelement bezeichnet.

class StaticBuffer 
    { 
    static String array[]; 
    } 

Dann könnten Sie es in Ihrem onCreate() oder jede andere Funktion initialisieren und it.As verwenden Sie es statisch ist es Werte, die die Änderungen widerspiegeln, die Sie überall machen.

ZB:

//Initialization 

StaticBuffer.array=new String[10]; 

//Usage 

StaticBuffer.array[0]="Item1"; 

PS: Ich habe diese Idee von einem Freund von mir. :)

+2

Ehrlich gesagt, es ist eine wirklich schlechte Idee :) –

+0

Falls Sie sich fragen, warum, kann ich 3 Dinge nennen, die mir in den Sinn kamen: Theading, Nullcheck/BoundsCheck, Lookups. Diese Dinge wären ein unnötiges Problem bei der Verwendung dieses. –

2

Ihr Kommentar ist widersprüchlich; Sie sagen:

Vorerst ich konzentrieren müssen, um den Text nicht so auf die Lokalisierung, den ganzen Text geht in die strings.xml

wenn Sie Localizing nicht benötigen, dann Warum benutzen Sie strings.xml?

Natürlich ist die Antwort, weil unabhängig von der Lokalisierung strings.xml der perfekte Ort dafür ist.

Ich weiß nicht, welche Art von Alpträumen Sie mit ihm haben, aber es ist nicht anders als jede andere Zeichenfolge:

Z.B. einer Saite.xml:

<string name="refresh">Refresh</string> 
<string name="order_placed" formatted="false">Order Placed: %s</string> 

Sie können später die gleiche Formatierer für sie verwenden:

getString(R.string.order_placed, "3pm")

AUSGABE:

Order Placed: 3pm

Wenn Sie neue Linien brauchen ...

<string name="error">Something bad happened.\nPlease try again.</string> 

AUSGABE:

Something bad happened. 
Please try again. 

Und so weiter.

Außerdem, wenn Sie Probleme haben Ihre Ressourcen zu nennen, ich habe nach mehr oder weniger this idea und trotz der Mängel an der Unterseite beschrieben, haben sie keine große Sache mit Android Studio Phantasie Refactoring-Tools gewesen.

+0

Verstanden und es scheint, dass es keine bessere Option abgesehen von der Formatierung der '' 'strings.xml''' gibt. –

+0

Ich interessiere mich für Ihre "Nightmares" über Saiten. –

+0

Meist Formatierung (ua neue Zeilen) für verschiedene Formfaktoren. –

Verwandte Themen