android - 从当前项目中的另一个模块启动 MainActivity
问题描述
我正在尝试从同一项目中的另一个模块开始一项活动。我使用 Retrofit Client,onResponse
我想从另一个模块开始主要活动。我使用“从 Android Studio Bar 导入新模块”在我的项目中导入了模块
我尝试使用 IntentClass.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>
解决方案
首先build.gradle
,您需要通过将其模块插件从以下位置更改为导入的模块作为库模块:
apply plugin: 'com.android.application'
至:
apply plugin: 'com.android.library'
其次,如果您需要隐藏如何调用 Activity 模块的实现细节,您可以在库模块中使用 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);
推荐阅读
- amazon-web-services - 运行 aws cli rds 执行语句时,我在哪里获得 Secret ARN?
- sas - SAS:J(x,y,z)是什么意思
- r - 当有重复的左表观察时如何左连接?
- firebase - Firebase 控制台中的 Firebase 云消息传递测试主题
- python - 在网格中评估函数,18 维
- python - 基于更新网站BS4更新熊猫系列
- android - 无法在嵌套虚拟化上运行 Android 模拟器
- apache-spark - pyspark csv write:双引号中带有换行符的字段
- r - 从 GitHub 安装 R 包时遇到问题
- git - 将克隆的 git 存储库中对 git 存储库的更改推送到我的私有 git 存储库