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

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

Para el inglés (los EEUU) puedo conseguir el símbolo (si el inglés (los EEUU) fijó como lengua 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 utilizando las herramientas de Android –

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

Puede probar algunos 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)); } } } 

Creo que java.util.currency es la clase que necesita, llame a getSymbol para obtener el símbolo del nombre de moneda

http://developer.android.com/reference/java/util/Currency.html

El símbolo de moneda depende de la ubicación. El signo $ significa diferentes monedas en EE.UU. y Australia. Por lo tanto, para obtener el símbolo correcto tiene que proporcionar la instancia de Locale. De lo contrario, se aplicará una configuración regional predeterminada, lo que resultará en 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","$"); ... } }; 

A continuación, puede obtener el símbolo mediante la configuración regional, como ésta.

 Currency currency = Currency.getInstance(Locale.getDefault()); String symbol = CURRENCIES.get(currency.getCurrencyCode()); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.