Запустите MainActivity из другого модуля в текущем проекте - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь запустить действие из другого модуля в том же проекте.Я использую Retrofit Client и на onResponse хочу начать основную деятельность с другого модуля.Я импортировал модуль в свой проект с помощью «Импортировать новый модуль из Android Studio Bar»

Я пытался использовать Intent с Class.forName(), но он не работает, я также пытался добавить в манифест действия.У меня есть проект Lab, который содержит два модуля: app (com.example.lab) и home (he.kome.lis).Когда я попытался добавить в app-manifest действие из дома, оно красное, и я получил "Unresolved class".

Вот так выглядит мой манифест для приложения:

<activity android:name="com.example.lab.LogInActivity">
<intent-filter>
    <action android:name="android.intent.action.MAIN"/>

    <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name="he.kome.lis.AddActivity">
</activity>

Ответы [ 2 ]

1 голос
/ 27 марта 2019

Сначала , вам нужно сделать импортированный модуль библиотечным модулем, изменив его модуль build.gradle плагин с:

apply plugin: 'com.android.application'

до:

apply plugin: 'com.android.library'

Второй , если вам нужно скрыть детали реализации того, как вызывать модули Activity, вы можете использовать навигатор singleton class внутри вашего библиотечного модуля:

public class Navigator {
    private Navigator(){}

    public static Navigator getInstance() {
        return NavigatorHolder.INSTANCE;
    }

    private static class NavigatorHolder {
      private static final Navigator INSTANCE = new Navigator();
    }

    public void navigateToMainActivity(Context context) {
      Intent intent = new Intent(context, LibrariesMainActivity.class);
      context.startActivity(intent);
    }
}

Затем вы можете запустить модуль MainActivity библиотеки с помощью:

Navigator.getInstance().navigateToMainActivity(this);
0 голосов
/ 27 марта 2019

Кажется, вы не добавили их должным образом как свою зависимость Перейдите в проект, щелкните правой кнопкой мыши, затем выберите «Открыть настройки модуля», перейдите на вкладку «Зависимости», нажмите кнопку «+» справа (рядом с меткой области действия), выберите параметр «Модули» и выберите необходимую зависимость, нажмите кнопку «ОК»

.
...