问题描述:

override fun onClick(widget: View) {val intent = Intent(AActivity.this, BActivity::class.java)startActivity(intent)
}

上面这个在kotlin中会报以下错:

None of the following functions can be called with the arguments supplied.
<init>(Context!, Class<*>!) defined in android.content.Intent
<init>(String!, Uri!) defined in android.content.Intent

分析问题:

这是因为kotlin中不能像java那样使用AActivity.this,kotlin无法识别为Context

解决问题:

网上很多写法是这样的:

override fun onClick(widget: View) {val intent = Intent(AActivity@this, BActivity::class.java)//AActivity@this这种写法是错误的startActivity(intent)
}

但是发现还是报错了,正确的写法应该是这样的:

override fun onClick(widget: View) {val intent = Intent(this@AActivity, BActivity::class.java)//正确写法startActivity(intent)
}

网上还有一些kotlin优雅的写法:

//正常跳转
startActivity<RegisterActivity>()//携带参数
startActivity<ResetPwdActivity>("key" to "value")//A页面跳到B页面,再跳到C页面,再跳到A页面时,要求清空B,C页面退出,并且不重走A的生命周期(后退回首页)
startActivity(intentFor<MainActivity>().singleTop().clearTop())//A页面跳到B页面,再跳到C页面,再跳到A页面时,要求清空B,C页面退出,并且重走A的生命周期(退出登录/登录成功)
startActivity(intentFor<MainActivity>().clearTask().newTask())//A页面->B页面->C页面->D页面时,销毁A.B.C这三个页面,整个栈中就D页面
startActivity(intentFor<LoginActivity>().newTask().clearTask())

但是试了一下发现报错了,原来这并不是kotlin自带的写法,需要配合Anko才能使用这种写法,关于Anko可以自行百度了解下

kotlin中Activity跳转相关推荐

  1. Kotlin 中 Activity 跳转问题

    java写andorid 跳转 Intent intent = new Intent(this,MainActivity.class);startActivity(intent);// 或者start ...

  2. Kotlin开发activity跳转失败

    Kotlin开发activity跳转失败 这个问题主要是自己粗心大意引起的,在写记录一下,引以为戒: 下面就是问题的关键,不知道同学们发现问题了没有?没错这个参数似乎多了一个 override fun ...

  3. 1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程。2.编写一个程序,要求在第一个界面中输入两个数字,在第二个界面显示第一个界面两个数字的和。

    1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程. 首先,我创建了一个MainActivity和SecondActivity两个Activity. ...

  4. 在kotlin中启动activity发生java.lang.RuntimeException: Unable to instantiate activity ComponentInfo for Kot

    在kotlin中启动activity发生java.lang.RuntimeException: Unable to instantiate activity ComponentInfo for Kot ...

  5. Android中Activity各种页面跳转并传值(Activity -> Activity)(Activity -> Fragment)(Activity -> Service)

    目录 Activity -> Activity Activity -> Fragment Fragment -> Activity Activity -> Service Ac ...

  6. Activity跳转到Navigation中的Fragment

    Activity跳转到Navigation中的Fragment 思路 首先跳转到Fragment所在的Activity中 在跳回到对应Activity中需要判断这个意图是从哪里到达的这里,所以需要一个 ...

  7. Kotlin 中infix,inline,noinline,crossinline ,refied 等的理解

    1. infix 的作用 infix 标示的函数可以使用中缀表示法, 中缀表示法就是在写法上可以忽略 . 与 ()并且必须满足三个条件 必须是成员函数或者扩展函数 必须只有一个参数 其参数不能有可变参 ...

  8. Kotlin中使用简洁明了的代码替换findViewByid

    第一种(推荐使用) Kotlin Android 扩展插件(Android Studio 内置) 首先添加 apply plugin: 'kotlin-android-extensions' 官方示例 ...

  9. android activity跳转多次闪退_Android实现Activity和Fragment的跳转动画

    1.使用overridePendingTransition方法实现Activity跳转动画 botton_in <?xml version="1.0" encoding=&q ...

最新文章

  1. android textview 常用属性id,Android TextView常用属性
  2. [摘抄]MySQL数据库系统的常规管理介绍
  3. Spring JPA数据+Hibernate+ MySQL + Maven
  4. vue-router配置介绍和使用方法(三)
  5. 64centos安装mysql_CentOS7 64位安装mysql教程,亲测完美
  6. Java的日期类说明Calendar、Data、日期转化格式化以及注意事项
  7. GoEasy使用详解
  8. js根据年份计算总周数并获取每周的日期范围
  9. Problem 1 : Multiples of 3 and 5
  10. RP产品原型资源分享-论坛类
  11. 不会“思维”只会“批判”,谨防网络舆论“怨妇化”
  12. Java回炉之语言基础
  13. 应采儿吐槽孕期不适 细数准妈妈的5道坎儿
  14. 针对C64x+的一些优化经验(转帖)
  15. 计算机管理 看内存个数,如何知道/查看内存槽数
  16. “网上购车平台”又出新模式
  17. OpenGL透视投影
  18. linux培训_南通linux培训多少钱
  19. 二维码与QR code
  20. iOS开发--- iOS编程浅析

热门文章

  1. linux进程tsm是什么,TSM LINUX 实验配置
  2. docker删除已停止的容器
  3. python设置断点_python调试 设置断点
  4. 【Scratch考级99图】图15-等级考试scratch绘制复杂图形五角星
  5. 基于Unreal引擎的大地形加载研究
  6. stm32 CubeMX配置按键开关灯
  7. GitLab密钥设置,解决push origin需要输入密码的问题
  8. Java成员变量初始化和构造函数顺序
  9. SVG、canvas、绘制线段和填充多边形、矩形、曲线的绘制和填充
  10. 你不理财,财不理你 来自专业交易员的理财分析