Как вызвать макет 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 файлы правильно размещены на имена. Это очень неутешительное поведение, но похоже, что единственный путь вокруг него - это префикс.