Locale Das Währungssymbol
Ich habe einige Probleme bekommen die Standard-Währung des Systems.
Ich bin immer das symbol der Währung auf diese Weise:
Currency currency = Currency.getInstance(Locale.getDefault());
Log.v("TAG",currency.getSymbol());
Wenn die Sprache des Systems ist in English (United States)
das Rechte symbol zeigt nach oben ($
).
Aber wenn ich wählen Sie die Sprache Portuguese (Portugal)
gibt es dieses symbol ¤
.
Was kann die Ursache sein?
Vielleicht sind Sie mit UTF-8 anstelle von UTF-16? Ich sehe nicht, wie das passieren konnte, aber es ist ein Gedanke.
ich denke, das wird eine gute Lösung für deine Antwort-Währung.getInstance(new Locale("IHRE SPRACHE", countryCode)).getSymbol();
Erhalten Sie vielleicht Antwort auf Ihre Frage aus diesem link
ich denke, das wird eine gute Lösung für deine Antwort-Währung.getInstance(new Locale("IHRE SPRACHE", countryCode)).getSymbol();
Erhalten Sie vielleicht Antwort auf Ihre Frage aus diesem link
InformationsquelleAutor Filipe Batista | 2012-10-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint dies ein bekanntes Problem (http://code.google.com/p/android/issues/detail?id=38622.
Ich kam auf eine mögliche Lösung auf diese Weise:
Da das problem in der Symbol-und nicht die Währung code, ich löste dieses problem um ein statisches
Map
wo der Schlüssel ist die CurrencyCode und der Wert ist der Symbol.Um alle (oder fast) die Währungen codes zur Verfügung, die in die locales, die Informationen, die Sie tun können, so etwas wie dieses:
Nachdem Sie die Karte mit der CurrencyCode und Symbol Sie müssen nur an so etwas wie dieses:
InformationsquelleAutor Filipe Batista
Einige Gedanken;
Könnte es sein, dass Sie immer das richtige symbol für (Euro -) aber deine Schrift - /anmelden hat es nicht und es sieht nur aus wie das symbol?
Gebietsschema ist ein ziemlich verspielt Klasse, die Konstruktoren haben keine Fehlerprüfung. Sie kann leicht sehen, locales, die nicht unterstützt werden oder die nicht wirklich existieren in den Normen (wie "de_US" für "Deutsch als gesprochen, in der UNS").
Beachten Sie, dass die locale-Daten, die nicht unbedingt für alle locales, die vordefinierten Konstanten in dieser Klasse außer de_de, was ist das nur locale Java garantiert, ist immer verfügbar, und es unterscheidet sich in verschiedenen Android-Versionen und kann auch begrenzt werden, indem der Betreiber oder custom builds. pt_PT wurde Hinzugefügt, 2.3.
Bezug auf die option, die Sie präsentiert, wenn Sie check-out Unicode-standards wie Sie umgesetzt wurden in API8 und Portugal existiert nur als ein Territorium (und nicht die Kombination).
Kann es besser sein, wenn Sie schaffen somit eine partielle locale-Instanz aus der Land-code allein, und dann Holen Sie das Währungssymbol für Portugal zum Beispiel. Sie werden nicht in der Lage, um die Einhaltung der vordefinierten Statik der Locale-Klasse, da es ziemlich eng unterstützt verschiedene Sprachen (Es ist eine kurze Liste), aber es sollte funktionieren, als das Gebietsschema der Daten, die Sie suchen, in das system.
Ich würde auch versuchen, und sehen, ob die Währung.toString() gibt die EUR (ISO 4217-code der Währung, in der Regel ein drei-Buchstaben-Akronym).
InformationsquelleAutor Ben Max Rubinstein
Dieser Formate Ihr int/double, eine Währung, basierend auf der Sprache des Geräts
Und dies ist, wie man nur das Währungssymbol ersetzt alle zahlen, Punkte und Kommas
InformationsquelleAutor ORY