0
我有多个菜单文件menu_language_en,menu_language_es ...等 我想用另一个变量,像加载它们:动态生成菜单文件名
String lang="en";
inflater.inflate(eval("R.menu.language_menu_"+lang), menu);
任何想法?
感谢 祚
我有多个菜单文件menu_language_en,menu_language_es ...等 我想用另一个变量,像加载它们:动态生成菜单文件名
String lang="en";
inflater.inflate(eval("R.menu.language_menu_"+lang), menu);
任何想法?
感谢 祚
正确的答案是使用resource sets,所以你必须在基于语言的不同目录中的单个文件名(例如,res/menu/options.xml
,res/menu-de/options.xml
,res/menu-zh/options.xml
等)。在你的代码中,你只需要inflate(R.menu.options, menu)
,Android根据用户的语言环境选择正确的语言。
如果由于某种原因该解决方案不合适,请使用getResources().getIdentifier()
来派生给定名称的资源ID,然后在调用inflate()
时使用该值。
感谢您的回答,但这并不适合我的需求!这是一个翻译应用程序,选择的语言与用户的语言环境无关。此外,我对动态命名很感兴趣,可能是菜单R.menu.thing $ y,但是任何其他资源,例如:R.xml.example_n $ num – jobwat 2010-11-19 01:28:29
@jobano:请重新阅读第二段我的答案。 – CommonsWare 2010-11-19 01:33:19
非常感谢你! – jobwat 2010-11-19 02:32:59