“Kotlin”编程中的语言更改语言环境由于语言环境适用于Java Fine,但Kotlin语言不起作用

我在应用程序中使用kotlin语言,并在更改语言环境时遇到一些困难。 正如我已经做了,我已经创建了一个全球性的类,即在Java和这个类上,我已经写了语言改变语言环境代码的代码和语言代码函数我打电话给基础应用程序类在我的项目是在Kotlin。

这是我的源代码:

全局类(Java代码)

public void changelanguage(Context context) { Locale locale = Locale.getDefault(); Locale.setDefault(locale); System.out.println("GlobalLocale" +locale.toString()); Configuration config = new Configuration(); config.locale = locale; context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics()); } 

基本申请分类代码:( Kotlin)

 class CrashApplicationClass : Application() { val TAG = CrashApplicationClass::class.java.simpleName lateinit var sDefSystemLanguage: String val gc = GlobalClass.getInstance() override fun onCreate() { // TODO Auto-generated method stub // ACRA.init(this) super.onCreate() instance = this gc.changelanguage(baseContext) println("Languagekotlin" + gc.changelanguage(baseContext)) println("kotlininstance" + instance) // sDefSystemLanguage = Locale.getDefault().language } val requestQueue: RequestQueue? = null get() { if (field == null) { return Volley.newRequestQueue(applicationContext) } return field } fun <T> addToRequestQueue(request: Request<T>, tag: String) { request.tag = if (TextUtils.isEmpty(tag)) TAG else tag requestQueue?.add(request) } fun <T> addToRequestQueue(request: Request<T>) { request.tag = TAG requestQueue?.add(request) } fun cancelPendingRequests(tag: Any) { if (requestQueue != null) { requestQueue!!.cancelAll(tag) } } companion object { val TAG = CrashApplicationClass::class.java.simpleName @get:Synchronized var instance: CrashApplicationClass? = null private set } 

}

作为代码在这里,我有打印日志在Java类日志语言得到正确:System.out.println(“GlobalLocale”+ locale.toString());

但在CrashApplication类日志:println(“Languagekotlin”+ gc.changelanguage(baseContext)) – >我得到“Kotlin.Unit”而语言没有改变得到正确的语言环境在Java中,但不知道Kotlin类没有得到它返回“Kotlin.Unit”

而且在清单上,我已经设置:android:configChanges =“locale”任何人都有关于Kotlin的语言变化的想法。 Plz份额。

我现在用Kotlin语言解决了这个问题,通过改进这个功能来改变语言

 public String changelanguage(Context context) { //String lang = "hi_IN"; // Locale locale = new Locale(lang); Locale locale = Locale.getDefault(); Locale.setDefault(locale); System.out.println("GlobalLocale" +locale.toString()); Configuration config = new Configuration(); config.locale = locale; context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics()); return locale.toString(); } 

并解决了我的Kotlin.unit错误和@marstran感谢给我提示我的问题,我错了。 现在这个问题已经在Kotlin解决了。

在做负面投票之前@LunarWatcher请仔细阅读问题。 现在只要投票,做正面的投票。

Interesting Posts