2010-11-19 78 views
0

我有多個菜單文件menu_language_en,menu_language_es ...等 我想用另一個變量,像加載它們:動態生成菜單文件名

String lang="en"; 
inflater.inflate(eval("R.menu.language_menu_"+lang), menu); 

任何想法?

感謝 祚

回答

0

正確的答案是使用resource sets,所以你必須在基於語言的不同目錄中的單個文件名(例如,res/menu/options.xmlres/menu-de/options.xmlres/menu-zh/options.xml等)。在你的代碼中,你只需要inflate(R.menu.options, menu),Android根據用戶的語言環境選擇正確的語言。

如果由於某種原因該解決方案不合適,請使用getResources().getIdentifier()來派生給定名稱的資源ID,然後在調用inflate()時使用該值。

+0

感謝您的回答,但這並不適合我的需求!這是一個翻譯應用程序,選擇的語言與用戶的語言環境無關。此外,我對動態命名很感興趣,可能是菜單R.menu.thing $ y,但是任何其他資源,例如:R.xml.example_n $ num – jobwat 2010-11-19 01:28:29

+0

@jobano:請重新閱讀第二段我的答案。 – CommonsWare 2010-11-19 01:33:19

+0

非常感謝你! – jobwat 2010-11-19 02:32:59