java如何在Android应用程序的两个模块之间传递变量(本地语言)?
我有两个应用程序模块:一个用于配置设置,另一个基于配置设置的游戏。在配置应用程序中,我选择应用程序的语言(变量myLocal),并希望将此变量传递给第二个模块。你知道怎么做吗
我只需要知道用户是否选择了英语(字符串“en”或波兰语“pl”)
你可以在下面搜索框中键入要查询的问题!
我有两个应用程序模块:一个用于配置设置,另一个基于配置设置的游戏。在配置应用程序中,我选择应用程序的语言(变量myLocal),并希望将此变量传递给第二个模块。你知道怎么做吗
我只需要知道用户是否选择了英语(字符串“en”或波兰语“pl”)
# 1 楼答案
我假设这是两个不同的应用程序。如果您是从配置模块启动应用程序,请使用自定义意图,在其中传递语言代码,如
PackageManager.getLaunchIntentFromPackage("com.example.mygame").putExtra("language", language)
,并从目标模块获取随getIntent().getStringExtra("language")
发送的额外“语言”如果您没有在配置模块内启动应用程序,则可以执行其他操作
在配置应用程序上定义广播接收器
然后,打开游戏(游戏模块)后,向此操作发送广播,广播内容如下,将从配置模块接收:
在游戏应用程序上也应用相同的过程,定义具有不同操作的接收器:
在第一个代码上收到来自
.MyConfigurationReceiver
的广播后,从模块获取配置并将广播发送回游戏。注意:这来自配置模块。示例代码:这样,您就可以从
.MyConfigurationFetcher
接收器获取配置。然后,您可以在需求中解析配置。这可能需要时间,但最终您会得到它,因为操作有些异步这只是一个例子,但我想你明白了
# 2 楼答案
模块之间不能相互通信,除非一个模块依赖于另一个模块。听起来情况并非如此,但您的主应用程序依赖于两者。如果是这样,您应该使用主应用程序在模块之间进行对话:
当然,这意味着您的主应用程序需要一种方式来通知模块1中所做的更改。这可以通过多种方式实现
编辑 要将一个模块添加为另一个模块的依赖项,请转到“项目结构设置”>;依赖关系。单击
Declared Dependencies
下的+
按钮。选择Module Dependency
并选择第二个模块