我尝试使用 Kotlin 编写以下代码以更改应用程序语言,但该代码无法运行。请问有人能指出我哪里做错了吗?
BaseFragment.kt
open fun setLocale(lang: String, redirectActivity: Boolean, activity: Activity?){
if(activity != null) {
val configuration = resources.configuration
val locale = Locale(lang)
configuration.setLocale(locale)
configuration.setLayoutDirection(locale)
activity.createConfigurationContext(configuration)
val sharedPref: SharedPreferences =
activity.getSharedPreferences(getString(R.string.app_name), 0)
val editor = sharedPref.edit()
editor.putString("lang", lang)
editor.apply()
activity.finish()
startActivity(activity.intent.putExtra("redirectActivity", redirectActivity))
}
}
LanguageFragment.kt
BaseFragment.setLocale(newLang, true, activity)