динамически устанавливаемый символ валюты - PullRequest
3 голосов
/ 13 сентября 2011

В моем приложении много текстовых представлений, которые содержат символ валюты.

Теперь я хочу, чтобы пользователь установил символ.Я создал общую преференцию и добавил туда все существующие валюты.К сожалению, существует приблизительно 20 различных валют.

Поэтому я изо всех сил пытаюсь динамически изменить символ валюты во всех моих текстовых представлениях.Я мог бы создать для каждого большого оператора case переключателя (с 20 случаями), но это сильно взорвало мой код.

Есть ли другая техника, как я могу изменить символ.Например, с помощью XML-файла, как на разных языках ...

Ответы [ 2 ]

9 голосов
/ 13 сентября 2011

Эффективный способ сделать это - использовать Locale и Валюта классов.

1.Создайте объект Locale на основе пользовательского ввода

Пример:

       Locale locale=new Locale("en", "US");

2. на основе этого получите символ валюты и отобразите его.

Пример:

     Currency currency=Currency.getInstance(locale);
     String symbol = currency.getSymbol(); 
3 голосов
/ 13 сентября 2011

Я думаю, вам понадобится отформатированная строка из xml, что-то вроде этого из документации :

<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>

Тогда в вашей деятельности:

Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...