动态设置货币符号

时间:2011-09-13 12:33:10

标签: android textview

在我的应用中,有很多包含货币符号的文字视图。

现在我希望用户设置符号。我创建了一个共享首选项并添加了所有现有货币。不幸的是,那里有大约20种不同的货币。

因此,我正在努力如何动态更改所有文本视图中的货币符号。 我可以为每个创建一个大的switch case语句(有20个案例),但这会极大地破坏我的代码。

是否有其他技术可以更改符号。例如。借助不同语言的xml文件......

2 个答案:

答案 0 :(得分:9)

有效的方法是使用 Locale Currency 类。

1.根据用户输入

创建Locale对象

示例:

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

2.基于此获取货币符号并显示它。

示例:

     Currency currency=Currency.getInstance(locale);
     String symbol = currency.getSymbol(); 

答案 1 :(得分:3)

我认为你需要一个来自xml的格式化字符串,类似于来自the documentation的字符串:

<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);