我的用户可以更改应用内的区域设置(他们可能希望将手机设置保留为英文,但可以用法语,荷兰语或任何其他语言阅读我的应用内容...)
为什么这个在1.5/1.6中完全正常但在2.0中不再是???
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case 201:
Locale locale2 = new Locale("fr");
Locale.setDefault(locale2);
Configuration config2 = new Configuration();
config2.locale = locale2;
getBaseContext().getResources().updateConfiguration(
config2, getBaseContext().getResources().getDisplayMetrics());
// loading data ...
refresh();
// refresh the tabs and their content
refresh_Tab ();
break;
case 201: etc...
Run Code Online (Sandbox Code Playgroud)
问题是,每当用户通过以上代码行时,MENU"缩小"越来越多......
这是缩小的菜单:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 100, 1, "REFRESH").setIcon(android.R.drawable.ic_menu_compass);
SubMenu langMenu = menu.addSubMenu(0, 200, 2, "NL-FR").setIcon(android.R.drawable.ic_menu_rotate);
langMenu.add(1, 201, 0, "Nederlands");
langMenu.add(1, 202, 0, "Français");
menu.add(0, 250, 4, R.string.OptionMenu2).setIcon(android.R.drawable.ic_menu_send);
menu.add(0, 300, …Run Code Online (Sandbox Code Playgroud) 因此,无论设备/应用程序的当前语言环境设置如何,我都希望在多个语言环境中获取String的值.我该怎么办?
基本上我需要的是一个功能getString(int id, String locale)而不是getString(int id)
我怎么能这样做?
谢谢
在我的一个Android应用中,我需要加载特定语言的字符串.例如:
values: <string name="txt_help">Help</string>
values-de: <string name="txt_help">Hilfe</string>
values-fr: <string name="txt_help">Aider</string>
Run Code Online (Sandbox Code Playgroud)
现在我需要默认(值)文本.
有没有办法加载给定语言"en"的密钥"txt_help"?我找不到可以将语言环境设置为附加参数的方法.
或者我可以创建具有给定语言环境的新ResourceManager并通过此资源对象读取String吗?
提前谢谢了.HJW