为什么在Android 13之前,应用程序上下文中的每个应用程序语言不起作用?

10
我正在尝试实现 Android 13 中引入的逐应用程序语言功能。我正在使用 AppCompatDelegate.setApplicationLocales,它在 Android 13 上运行得非常好。在 Android 12 上,如果我使用活动上下文而不是应用程序上下文,则它可以工作。以下来自活动的片段会在 Android 12 上产生不同的输出。
Log.d(TAG, applicationContext.getString(R.string.settings_change_button))
Log.d(TAG, getString(R.string.settings_change_button))

第一行是以手机语言打印的,第二行是以应用程序语言打印的。我按照这里所示添加了AppLocalesMetadataHolderService https://developer.android.com/guide/topics/resources/app-languages#android12-impl

我需要做些什么来使应用程序上下文使用应用程序语言?

1个回答

9

他们在官方文档中没有提到吗?这就是为什么我浪费了时间在这上面的原因。 - Renetik
1
现在已经将其包含在官方文档中,并在1.7.0-alpha03版本中添加了对非Activity上下文的支持。请参考https://developer.android.com/jetpack/androidx/releases/appcompat#1.7.0-alpha03。 - Subhrajyoti Sen
遇到同样的问题。有没有更新? - undefined
是的,对我来说,使用ContextCompat.getContextForLanguage(applicationContext)而不是直接使用applicationContext是可以正常工作的。https://developer.android.com/reference/androidx/core/content/ContextCompat#getContextForLanguage(android.content.Context) - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接