Я занимаюсь разработкой Activity с фиксированной и динамической компоновкой. Динамическая часть (и, следовательно, количество и тип созданных виджетов) основана на значениях базы данных следующим образом:
Для каждой строки базы данных у меня будет группа виджетов. И компоненты каждой группы зависят от типа объекта (определенного по одному из столбцов) этой строки базы данных.
Для сохранения / восстановления состояния экземпляра все виджеты должны иметь идентификаторы. Я хотел бы убедиться, что мои собственные идентификаторы никогда не будут конфликтовать с идентификаторами из сгенерированного класса R.
Для лучшей обработки в приложении (поиск того, какой виджет соответствует какому полю, в каком объекте данных), была бы полезна схема нумерации, такая как ID = строка * 100 + fieldindex. Fieldindex не совсем число столбца. Каждый тип объекта должен иметь свои собственные поля указателей.
Поскольку значения идентификаторов в сгенерированном R, кажется, не имеют последовательных чисел, я не могу просто предопределить пул идентификаторов в R и использовать их без необходимости дополнительного сопоставления.
Вторая причина против предопределенного пула: большое количество указателей полей приведет к большому пулу идентификаторов. В-третьих, размер пула идентификаторов будет ограничивать количество отображаемых строк.
Есть ли безопасный диапазон номеров, который я могу использовать для своих собственных идентификаторов компонента макета?
Глядя на R.java в папке gen /, у меня складывается впечатление, что все сгенерированные идентификаторы больше 0x7f000000. Это гарантировано?
И если да, является ли диапазон от 0x00000000 до 0x7f000000 бесплатным для использования или он зарезервирован для внутренних целей Android?