kotlin中Activity跳转
问题描述:
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跳转相关推荐
- Kotlin 中 Activity 跳转问题
java写andorid 跳转 Intent intent = new Intent(this,MainActivity.class);startActivity(intent);// 或者start ...
- Kotlin开发activity跳转失败
Kotlin开发activity跳转失败 这个问题主要是自己粗心大意引起的,在写记录一下,引以为戒: 下面就是问题的关键,不知道同学们发现问题了没有?没错这个参数似乎多了一个 override fun ...
- 1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程。2.编写一个程序,要求在第一个界面中输入两个数字,在第二个界面显示第一个界面两个数字的和。
1.简述一个Activity跳转到另一个Activity时,两个Activity生命周期方法的执行过程. 首先,我创建了一个MainActivity和SecondActivity两个Activity. ...
- 在kotlin中启动activity发生java.lang.RuntimeException: Unable to instantiate activity ComponentInfo for Kot
在kotlin中启动activity发生java.lang.RuntimeException: Unable to instantiate activity ComponentInfo for Kot ...
- Android中Activity各种页面跳转并传值(Activity -> Activity)(Activity -> Fragment)(Activity -> Service)
目录 Activity -> Activity Activity -> Fragment Fragment -> Activity Activity -> Service Ac ...
- Activity跳转到Navigation中的Fragment
Activity跳转到Navigation中的Fragment 思路 首先跳转到Fragment所在的Activity中 在跳回到对应Activity中需要判断这个意图是从哪里到达的这里,所以需要一个 ...
- Kotlin 中infix,inline,noinline,crossinline ,refied 等的理解
1. infix 的作用 infix 标示的函数可以使用中缀表示法, 中缀表示法就是在写法上可以忽略 . 与 ()并且必须满足三个条件 必须是成员函数或者扩展函数 必须只有一个参数 其参数不能有可变参 ...
- Kotlin中使用简洁明了的代码替换findViewByid
第一种(推荐使用) Kotlin Android 扩展插件(Android Studio 内置) 首先添加 apply plugin: 'kotlin-android-extensions' 官方示例 ...
- android activity跳转多次闪退_Android实现Activity和Fragment的跳转动画
1.使用overridePendingTransition方法实现Activity跳转动画 botton_in <?xml version="1.0" encoding=&q ...
最新文章
- android textview 常用属性id,Android TextView常用属性
- [摘抄]MySQL数据库系统的常规管理介绍
- Spring JPA数据+Hibernate+ MySQL + Maven
- vue-router配置介绍和使用方法(三)
- 64centos安装mysql_CentOS7 64位安装mysql教程,亲测完美
- Java的日期类说明Calendar、Data、日期转化格式化以及注意事项
- GoEasy使用详解
- js根据年份计算总周数并获取每周的日期范围
- Problem 1 : Multiples of 3 and 5
- RP产品原型资源分享-论坛类
- 不会“思维”只会“批判”,谨防网络舆论“怨妇化”
- Java回炉之语言基础
- 应采儿吐槽孕期不适 细数准妈妈的5道坎儿
- 针对C64x+的一些优化经验(转帖)
- 计算机管理 看内存个数,如何知道/查看内存槽数
- “网上购车平台”又出新模式
- OpenGL透视投影
- linux培训_南通linux培训多少钱
- 二维码与QR code
- iOS开发--- iOS编程浅析