Как получить доступ к основным файлам res / layout / из подпакета? - PullRequest
1 голос
/ 26 мая 2011

Это тоже вопрос дизайна.Я не знаю, как спроектировать много действий и как разбить их на пакеты, при этом обращаясь к ресурсам приложений.

У меня есть приложение, которое позволяет пользователю входить в систему и получать доступ к действиям с вкладками, которыедает доступ ко многим модулям.Если они щелкают по модулю, они загружают модуль, который, в свою очередь, содержит вкладки.

В настоящее время у меня есть 3 пакета в этом приложении:

  • com.appname.app (многиедействия, которые я хотел бы разделить, войти, список модулей и т. д.)
  • com.appname.app.XML (обработчики xml)
  • com.appname.app.Utils (статические классы утилит и т. д.))

Я хотел бы добавить новый пакет, который будет содержать все мои модули, что-то вроде

  • com.appname.app.Modules (или даже отдельный пакет дляКАЖДЫЙ модуль)

Но я больше не могу получить доступ к ресурсам основных приложений, не обращаясь к ним с полным именем пакета, таким как setContentView(com.appname.app.R.layout.channel_list);

Очевидно, что в рамках любых действий com.appname.appя просто ссылаюсь на ресурсы, такие как макеты, через setContentView(R.layout.channel_list);.

Я бы подумал, что подпакет (подкаталог) должен иметь доступ к ресурсам родителя без необходимости использовать com.appname.app.R.layout.channel_list вместо R.layout.channel_list.Вот почему я предполагаю, что с моим дизайном что-то не так

Та же проблема касается доступа к строкам, рисованным и т. Д. Ресурсам ...

Я уверен, что это что-то очень простое.пропускаюЯ попытался вручную импортировать «родительский» пакет, и это тоже не сработало.

это то, как я должен делать вещи?или я должен каким-то образом создавать файлы ресурсов в каждом модуле пакета?или есть другой способ, которым я должен заниматься дизайном / разделением моего приложения?

1 Ответ

5 голосов
/ 26 мая 2011

Поскольку прекомпилятор Android будет компилировать все ссылки на файл R.class и помещать их в основной пакет, нет лучшего способа, чем явно импортировать ресурсы туда, где вы хотите их использовать

import com.appname.app.R;

так что полный классификатор не нужен.

...