Как вызвать макет xml из другого модуля

Я устанавливаю ContentView в MainActivity как setContentView(R.layout.activity_main);

У меня есть и другой модуль в пакете, для этого модуля, который я определил в gradle файле apply plugin: 'com.android.library'. В этом случае также есть res/layout/activity_main.xml

Итак, могу ли я вызвать activity_main.xml из другого модуля из MainActivity?

Ответ 1

Да, вы можете, но ваш модуль должен иметь еще один пакет Android package (EDIT: просто чтобы убедиться, что вы объявите свой пакет в своем манифесте Android). Так, например, у вас есть com.example.app для вашего модуля приложения и com.example.lib для вашей библиотеки. Затем вы можете получить доступ к своим идентификаторам ресурсов на com.example.app.R или com.example.lib.R. Таким образом, у вас будет com.example.lib.R.layout.activity_main для вашего макета внутри вашего библиотечного модуля.

Ответ 2

Я думаю, что вы ищете в разделе "Соображения развития" http://developer.android.com/tools/projects/index.html

В соответствии с ресурсом у вас не может быть двух макетов, называемых одинаковыми в разных модулях: один будет переопределять другой, даже если ваши R файлы правильно размещены на имена. Это очень неутешительное поведение, но похоже, что единственный путь вокруг него - это префикс.