Как получить доступ к основным файлам res / layout / из подпакета?

1

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

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

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

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

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

  • com.appname.app.Modules(или даже отдельный пакет для модуля EACH)

Но я больше не могу обращаться к основным ресурсам приложений, не обращаясь к ним с полным именем пакета, например 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
    Вы пробовали - импортировать com.appname.app.R;
Теги:
resources
import
package

1 ответ

5
Лучший ответ

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

import com.appname.app.R;

чтобы не требовался полный квалификатор.

  • 0
    Ура, что работает, но конфликтует с import android.R; его хорошо после его удаления
  • 0
    имеет гораздо больше смысла. Я действительно не смотрел на файл R.java больше, чем на первый взгляд, чтобы увидеть статические целые. после того, как я «посмотрел» на него, я увидел класс, который мне просто нужно было импортировать, как вы говорите. Я был просто не уверен, что я собираюсь обходить вещи совершенно неправильно в плане дизайна. еще раз спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню