- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个应用程序模块:一个用于配置设置,第二个是基于配置设置的游戏。在配置应用程序中,我选择应用程序的语言(变量 myLocal)并希望将此变量传递给第二个模块。你知道怎么做吗?
我只需要知道用户是否选择了英语(字符串“en”或波兰语“pl”)。
最佳答案
我假设这是两个不同的应用程序。如果您从配置模块启动应用程序,请在传递语言代码的地方使用自定义 Intent ,例如 PackageManager.getLaunchIntentFromPackage("com.example.mygame").putExtra("language", language)
并从目标模块获取您使用 getIntent().getStringExtra("language")
发送的额外“语言”。
如果您不是在配置模块中启动应用程序,那么您还可以做一些其他事情。
在您的配置应用中定义一个广播接收器。
<receiver name=".MyConfigurationReceiver"
android:enabled="true">
<intent-filter>
<action>com.example.configuration.MyCustomAction</action>
</intent-filter>
</receiver>
然后,一旦您打开游戏(您的游戏模块),向此操作发送一个广播,其中包含将从您的配置模块接收到的内容:
getApplicationContext().sendBroadcast(new Intent(
"com.example.configuration.MyCustomAction"));
在您的游戏应用程序上也应用相同的过程,定义具有不同操作的接收器:
<receiver name=".MyConfigurationFetcher"
android:enabled="true">
<intent-filter>
<action>com.example.myapp.MyConfigurationFetchAction</action>
</intent-filter>
</receiver>
在第一个代码上收到来自 .MyConfigurationReceiver
的广播后,从模块中获取配置并将广播发送回游戏。注意:这来自配置模块。示例代码:
@Override
public void onReceive(Context context, Intent intent)
{
context.getApplicationContext().sendBroadcast(
new Intent("com.example.myapp.MyConfigurationFetchAction")
.putExtra("myConfiguration", Utilities.getConfiguration()))
}
这样,您就可以从 .MyConfigurationFetcher
接收器中获取配置。然后,您可以根据您的要求解析配置。这可能需要一些时间,但最终你会得到它,因为操作有点异步。
这只是一个例子,但我想你明白了。
关于java - 如何在 Android 应用程序的两个模块之间传递变量(本地语言)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58878423/
我是一名优秀的程序员,十分优秀!