- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用此扩展来更改我的应用程序的区域设置:
fun Context.changeLanguage(language: String): ContextWrapper {
var context = this
val config = context.resources.configuration
if (language.isNotBlank()) {
val locale = Locale(language)
Locale.setDefault(locale)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
config.setLocale(locale)
} else {
config.locale = locale
}
context = context.createConfigurationContext(config)
}
return ContextWrapper(context)
}
主要 Activity :
override fun attachBaseContext(newBase: Context?) {
super.attachBaseContext(newBase?.changeLanguage(prefs.language))
}
这适用于除打印以外的所有内容。当我尝试打印时,我得到 java.lang.IllegalStateException: Can print only from an activity
另一个模块中的PrintFragment:
activity?.also { context ->
val printManager = context.getSystemService(Context.PRINT_SERVICE) as PrintManager
val jobName = getString(R.string.print_document)
printManager.print(jobName, PrintPdfAdapter(context, printList), null)
}
有什么办法可以解决这个问题吗?
我现在切换回 context.resources.updateConfiguration(config, context.resources.displayMetrics)
。希望他们不要过早删除它。
最佳答案
您可以将原始上下文从 fun attachBaseContext(newBase: Context?)
保存到某个 MainActivity
变量,然后在您的 PrintFragment
中使用它用于打印的变量。
关于android - PrintManager.print() 并更改了 attachBaseContext 中的语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54648474/
请告诉我,我在android 7及以上版本上遇到了一个问题,如果我在attachBaseContext中制作固定字体,那么当我旋转屏幕时,屏幕的宽度和高度不确定,它总是相同的。如何解决这个问题,或者代
当我在我的应用程序中使用Datastore 制作可以动态切换语言的功能时,我发现了一个错误: java.lang.NullPointerException: Attempt to invoke vir
我的这个方法在 Activity 中运行良好。但是我如何在 fragment 中使用它呢? @Override public void attachBaseContext(Context newBas
我正在使用此扩展来更改我的应用程序的区域设置: fun Context.changeLanguage(language: String): ContextWrapper { var conte
我的目标是在创建上下文之前覆盖应用程序语言,我将使用该上下文调用其他 Activity 。可以通过在“onCreate”上使用“recreate()”方法来实现,但我不想重新创建 Activity 来
为了更改应用程序的默认值Locale ,我必须访问我的 WrapContext类(class) attachBaseContext 中的方法 Activity : @AndroidEntryPoint
我正在使用 dagger,我必须在 activity 的 attachBaseContext 中更新语言环境,我将语言环境更新逻辑保留在 LocaleManager 中,并且 LocaleManage
我需要在 Activity 的 attachBaseContext 中访问我的 SharedPreferences 实例(这样我就可以在那里设置语言环境),但是注入(inject)的 SharedPr
我是一名优秀的程序员,十分优秀!