Intereting Posts
DrawableCompat.setTint (drawable, color) vs Drawable.setColorFilter (цвет, режим) Рендеринг проблем и невозможность разрешения R в Android Studio 2.0, почему это происходит и как их решить? Зарегистрировать приложение для запуска при подключении USB-устройства к ПК Показать задний стек Android В чем разница между четким кешем и четкими данными в настройках Android Сбой официальных примеров Facebook (GraphApiSample) Задача «установить» Gradle Maven не работает с проектом библиотеки Android Как показать тост в AsyncTask в doInBackground Accountmanager.addAccount () vs Accountmanager.addAccountExplicitly () SQLiteQueryBuilder порядок обратного сортировки Кинжал 2 на Android. Различные способы хранения и доступа к компоненту @Singleton Android EditText принудительно использует цифровую клавиатуру, но допускает нечисловые символы Диалог пользовательского прогресса со скругленным поворотом изображения с помощью AsynTask Алмазный оператор не поддерживается Android – попытка вызвать виртуальный метод 'void android.support.v4.app.Fragment.setMenuVisibility (boolean)' для ссылки на нулевой объект

Настройка itemId в меню опций

У меня есть меню, определенное через 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, и тогда он больше не будет работать. Что было бы лучше всего?

Solutions Collecting From Web of "Настройка itemId в меню опций"

Я всегда использовал перегрузку только с параметром title, но, глядя на документы, кажется, вы можете передать NONE.

http://developer.android.com/reference/android/view/Menu.html#add(int, int, int, int)

Глупым решением для меня было создание меню макета ресурса xml со всеми моими необходимыми кнопками там с идентификатором, тогда я могу ссылаться на них в коде, используя свой собственный уникальный идентификатор, хотя я вообще не использую этот ресурс – буквально Просто регистр для произвольно сгенерированных идентификаторов.