где R объявлен в AppCompatActivity - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь освоить Android-разработку и иметь некоторый опыт работы с Java. Когда простой пример кода генерируется с помощью Android Studio, он генерирует класс MainActivity, который расширяется из AppCompatActivity. В том же классе есть ссылка на R.layout.activity_main и т.д. Я думаю, что это должно привести к базовому классу, где R фактически объявлен. Могу ли я узнать, что является типом java-класса для R и какой класс объявлен в Android SDK

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

R.java - это динамически генерируемый класс, созданный во время процесса сборки для динамической идентификации всех ресурсов (от строк до виджетов Android и макетов) для использования в классах Java в приложении Android. Обратите внимание, что R.java специфичен для Android (хотя вы можете скопировать его для других платформ, это очень удобно), поэтому он не имеет большого отношения к языковым конструкциям Java. Взгляните здесь , для более подробной информации.

Ответ, полученный от: Здесь

0 голосов
/ 02 ноября 2018

android aapt (теперь это aapt2 из android plugin 3.0) автоматически генерирует класс R.java для всех ваших ресурсов. Вы можете использовать класс R.java для доступа ко всем своим ресурсам из приложений.

R.java является последним классом, и вы не можете изменять класс, поскольку он создается автоматически при сборке проекта.

...