在Kotlin的意图

所以,我知道在Java中我们使用这个来启动新的Activity

 Intent intent = new Intent(this, SomeActivity.class); startActiviry(intent); 

但是我正在使用Kotlin写一个项目,所以在Kotlin就像

 val intent = Intent(this,SomeActivity::class.java) startActivity(intent) 

但它与问题崩溃

  FATAL EXCEPTION: main Process: com.pashabred.passlin, PID: 15243 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pashabred.passlin/com.pashabred.passlin.Enterring}: kotlin.KotlinNullPointerException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: kotlin.KotlinNullPointerException at com.pashabred.passlin.Enterring.onCreate(Enterring.kt:17) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

确保你有( 问号 ):

 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) } 

代替:

 override fun onCreate(savedInstanceState: Bundle) { super.onCreate(savedInstanceState) } 

使用Kotlin for Android的意图几乎是相同的,我们只需要在下面的语法中稍微改变。

 val intent = Intent(this,HelloActivity::class.java) startActivity(intent) 

您所得到的异常是您的onCreate方法中的空指针异常,请检查相同的..

Anko还提供了一些很好的功能来导航到其他活动,而不需要创建一个意图,添加附加功能或调用功能。

一切都可以在一行中完成:

 startActivity<DetailActivity>("id" to 2, "name" to "Kotlin") 

这将为该意图创建一组附加值,其中该值是由该函数正在接收的对列表所指定的值作为参数。

android kotlin中的intents可以像下面给出的一样使用。

 val intent = Intent(this,YourActivity::class.java) startActivity(intent) 

此外,你得到的例外存在于你的onCreate方法。

您在新活动的onCreate方法上onCreate指针异常。 请检查onCreate方法。

  1. 为应用程序实例创建单例类,例如:

class MyApp:Application(){

 override fun onCreate() { super.onCreate() instance = this } companion object { lateinit var instance: MyApp private set } 

}

  1. 那么在调用它之后你需要应用程序对象实例。 例如 :

     val intent: Intent = Intent(MyApp.instance, DestinationActivity::class.java); MyApp.instance.startActivity(intent)