I want get Currency symbol (like $ or £) by currency name (like USD or EUR).
For English(US) I can get symbol (if English(US) set as language on device):
Currency currency = Currency.getInstance(Locale.getDefault()); String symbol = currency.getSymbol()); // $
How can I get symbol for currency by currency name using android tools -
someMethod (String currCode) { // currCode - USD, EUR, UAH return currSymbol; // $... }
The getSymbol() method is used to get the symbol of a given currency for the default DISPLAY locale. For example, for the US Dollar, the symbol is "$" if the default locale is the US, while for other locales it may be "US$". If no symbol can be determined, the ISO 4217 currency code is returned.
The getSymbol() method is used to get the symbol of invoking currency for the default locale.
Press and hold the dollar sign on the Android ? 123 keyboard to see the other currency characters available, including the euro.
You can try some like this:
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)); } } }
Currency symbol depends on location. The same $ sign means different currencies in US and Australia. So, to get the correct symbol you have to provide the Locale instance. Otherwise, a default locale will be applied, which will result in different values for different devices.
Locale uk = new Locale("en", "GB"); Currency pound = Currency.getInstance("GBP"); pound.getSymbol(uk);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With