首页 > 解决方案 > Android:如何在 Kotlin 中投射?

问题描述

我想知道如何在 kotlin 中进行投射。

这是我想在 Kotlin 中执行的 java 代码。

爪哇

 public void moveToSettingActivity(Context context){
    Intent intent = new Intent(context, SettingsActivity.class);
    context.startActivity(intent);
    ((Activity)context).overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
    ((Activity)context).finishAffinity();
}

科特林

 fun moveToSettingActivity(context: Context){
    val intent = Intent(context,SettingsActivity::class.java)
    context.startActivity(intent)
}

我想知道如何((Activity)context)在 kotlin 中执行。

标签: android-studiokotlincasting

解决方案


虽然(context as Activity)确实有效,但最好在它周围添加一些安全性:

val activity = checkNotNull(context as? Activity) { "context is not an Activity" }

因为Context可能是几件事,比如一个Application实例。


推荐阅读