Я пытаюсь запустить действие из другого модуля в том же проекте. Я использую Retrofit Client и в onResponse я хочу запустить основную активность из другого модуля. Я импортировал модуль в свой проект с помощью «Импорт нового модуля из Android Studio Bar».
Я пытался использовать Intent с Class.forName(), но это не работает, я также пытался добавить в манифест действия. У меня есть лаборатория проекта, которая содержит два модуля: модули приложения (com.example.lab) и home (he.kome.lis). Когда я попытался добавить в манифест приложения действие из дома, оно стало красным, и я получил "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>
Да, я могу запускать каждый модуль независимо в одном проекте, но не могу вызывать активность
Кажется, вы не добавили их должным образом в качестве своей зависимости Перейдите к проекту и щелкните правой кнопкой мыши, а затем выберите «Открыть настройки модуля», перейдите на вкладку «Зависимости» и нажмите кнопку «+» справа (рядом с меткой области), выберите параметр «Модули» и выберите требуемую зависимость, нажмите «ОК».
Первый, вам нужно сделать импортированный модуль библиотечным, изменив его модуль build.gradle plugin с:
apply plugin: 'com.android.application'
к:
apply plugin: 'com.android.library'
Второй, если вам нужно скрыть детали реализации того, как вызывать модули действий, вы можете использовать Navigator одноэлементный класс внутри вашего библиотечного модуля:
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);
Вы правильно добавили модули в качестве зависимостей?