Android: файл меню имен - PullRequest
1 голос
/ 20 мая 2011

Я новичок в Android SDK (не Java), и у меня был вопрос или два о меню опций. Я искал несколько уроков, в том числе developer.android. Моя проблема заключается в именовании файлов. Меню работает нормально, когда в моей папке res / menu документ xml под названием menu.xml. Если я пытаюсь позвонить в mainMenu.xml, я получаю mainMenu не может быть разрешено или не является полем ошибка. Вот код в моей основной деятельности,

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.mainMenu, menu);
    return true;
}

«MainMenu» в R.menu.mainMenu в приведенном выше коде подчеркнуто красным (ошибка) Итак, мой вопрос: могу ли я назвать свой файл меню как угодно? Этот способ, кажется, ограничивает меня одним меню опций для проекта, которое не может быть правильным (если я что-то упустил:)

Ответы [ 2 ]

0 голосов
/ 20 мая 2011

Проблема в названии, которое вы выбрали для своего XML-файла.Вот пример выходных данных для файла с именем someName:

res / menu / someName.xml: Неверный файл

name: должен содержать только [a-z0-9_.]

Как видите, ваш файл может содержать любые символы нижнего регистра , цифры, подчеркивание или точку.Поскольку вы назвали свой файл mainMenu, в верхнем регистре M возникают проблемы.

В общем случае верблюжий случай не подходит для ресурсов Android, вам следует использовать змеиный регистр.

Кроме того, небольшая заметка о вашем onCreateOptionsMenu -методе: Контекст действия уже предоставляет вам всплывающее меню, вам не нужно его создавать:

@Override
public boolean onCreateOptionsMenu(Menu menu){
  this.getMenuInflater().inflate(R.menu.main_menu, menu);
  return super.onCreateOptionsMenu(menu);
}
0 голосов
/ 20 мая 2011

Вы можете определенно иметь несколько опций меню: может быть ограничение нижнего регистра.Используйте подчеркивания, и у вас все должно быть в порядке?

РЕДАКТИРОВАТЬ: да, это сообщение об ошибке появляется при попытке построить:

[2011-05-20 12:09:40 - BlAH BLAH BLAH] res\menu\newMenu.xml: Invalid file name: must contain only [a-z0-9_.]

Таким образом, есть ограничение нижнего регистра.Никогда этого не знал.

...