2010-11-19 5 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.xml, res/menu-de/options.xml, res/menu-zh/options.xml и т.д.). Вы, в своем коде, всего inflate(R.menu.options, menu), и Android выбирает правильный язык на основе локали пользователя.

Если по какой-либо причине это решение непригодно, используйте getResources().getIdentifier() для получения идентификатора ресурса с указанием имени, затем используйте это значение при вызове inflate().

+0

спасибо за ваш ответ, но это совсем не соответствует моим потребностям! Это приложение для перевода, выбранный язык не относится к языку пользователя. И более того, меня действительно интересует динамическое именование, может быть для меню R.menu.thing $ y, но любой другой ресурс, например: R.xml.example_n $ num – jobwat

+0

@jobano: Пожалуйста, перечитайте второй абзац мой ответ. – CommonsWare

+0

большое вам спасибо! – jobwat

Смежные вопросы