gpt4 book ai didi

java - 如何在 Android 应用程序的两个模块之间传递变量(本地语言)?

转载 作者:行者123 更新时间:2023-11-30 04:57:31 25 4
gpt4 key购买 nike

我有两个应用程序模块:一个用于配置设置,第二个是基于配置设置的游戏。在配置应用程序中,我选择应用程序的语言(变量 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com