valor tipos símbolo simbolos simbolo signo significa que palabra nombre mundo monedas moneda mas las importantes extranjeras este dolar dinero cuál convertidor abreviaturas abreviatura android

android - tipos - ¿Cómo obtener el símbolo de moneda por nombre de moneda?



tipos de monedas en el mundo y su valor (4)

Quiero obtener el símbolo de moneda (como $ o £ ) por el nombre de la moneda (como USD o EUR ).

Para inglés (EE. UU.) Puedo obtener un símbolo (si el inglés (EE. UU.) Está configurado como idioma en el dispositivo):

Currency currency = Currency.getInstance(Locale.getDefault()); String symbol = currency.getSymbol()); // $

¿Cómo puedo obtener el símbolo de la moneda por nombre de moneda con las herramientas de Android?

someMethod (String currCode) { // currCode - USD, EUR, UAH return currSymbol; // $... }



El símbolo de moneda depende de la ubicación. El mismo signo de $ significa diferentes monedas en EE. UU. Y Australia. Por lo tanto, para obtener el símbolo correcto, debe proporcionar la instancia de Locale. De lo contrario, se aplicará una configuración regional predeterminada, lo que dará lugar a valores diferentes para diferentes dispositivos.

Locale uk = new Locale("en", "GB"); Currency pound = Currency.getInstance("GBP"); pound.getSymbol(uk);


He resuelto este problema para crear un Mapa que tiene la clave es el código de moneda y el valor es el símbolo.

public final Map<String, String> CURRENCIES= new HashMap<String, String>(){ { put("EUR","€"); put("USD","$"); ... } };

Luego, puede obtener el símbolo usando Locale, de esta manera.

Currency currency = Currency.getInstance(Locale.getDefault()); String symbol = CURRENCIES.get(currency.getCurrencyCode());


Puedes probar algo como esto:

public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Utils.getCurrencySymbol(Currency.getInstance(Locale.US).getCurrencyCode()); Utils.getCurrencySymbol(Currency.getInstance(Locale.JAPAN).getCurrencyCode()); Utils.getCurrencySymbol(Currency.getInstance(Locale.UK).getCurrencyCode()); //for your case that you want to get Euro symbol because France are with Euro symnol Utils.getCurrencySymbol(Currency.getInstance(Locale.FRANCE).getCurrencyCode()); //you can get symbol also if you write string of your desired currency Utils.getCurrencySymbol("INR"); } static class Utils { public static SortedMap<Currency, Locale> currencyLocaleMap; static { currencyLocaleMap = new TreeMap<Currency, Locale>(new Comparator<Currency>() { public int compare(Currency c1, Currency c2) { return c1.getCurrencyCode().compareTo(c2.getCurrencyCode()); } }); for (Locale locale : Locale.getAvailableLocales()) { try { Currency currency = Currency.getInstance(locale); currencyLocaleMap.put(currency, locale); } catch (Exception e) { } } } public static String getCurrencySymbol(String currencyCode) { Currency currency = Currency.getInstance(currencyCode); System.out.println(currencyCode + ":-" + currency.getSymbol(currencyLocaleMap.get(currency))); return currency.getSymbol(currencyLocaleMap.get(currency)); } } }