Ответ 1
Я всегда использовал перегрузку только с параметром title, но, глядя на документы, кажется, вы можете передать NONE.
http://developer.android.com/reference/android/view/Menu.html#add (int, int, int, int)
У меня есть меню, определенное через XML-ресурс. Теперь динамически добавляю элемент меню
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mainmenu, menu);
if(myCondition==true)
{
menu.add(0, 99, 0, "new Entry");
}
return true;
}
В onOptionsItemSelected (элемент MenuItem) У меня есть оператор case, который проверяет "99" и выполняет мои действия. Технически, что хорошо работает, мне просто интересно, какого числа, здесь 99, я подберу? Элементы, созданные в XML, получили идентификатор через файл ресурсов, я предполагаю, что у Android есть логика для создания этих элементов. Интересно, может ли случиться, что сгенерированный пункт меню попадает случайно, а также 99, и тогда он больше не будет работать. Каким будет лучший способ?
Я всегда использовал перегрузку только с параметром title, но, глядя на документы, кажется, вы можете передать NONE.
http://developer.android.com/reference/android/view/Menu.html#add (int, int, int, int)
Глупым решением для меня было создание меню макета ресурса xml со всеми моими необходимыми кнопками с идентификатором, тогда я могу ссылаться на них в коде, используя свой собственный уникальный идентификатор, даже если я не использую этот ресурс в все - буквально просто регистр для случайно сгенерированного идентификатора эффективно.