kotlin中Activity跳转

kotlin中Activity跳转问题描述:overridefunonClick(widget:View){valintent=Intent(AActivity.this,BActivity::class.java)startActivity(intent)}上面这个在kotlin中会报以下错:Noneofthefollowingfunctionscanbecalled…

大家好,又见面了,我是你们的朋友全栈君。

问题描述:

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可以自行百度了解下

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143268.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 服务器可以ghost备份吗_服务器可以用dism备份吗

    服务器可以ghost备份吗_服务器可以用dism备份吗带RAID服务器能GHOST备份吗?一、不可以的原因:1、从saymantec上查询到不行:Ghost与RAID的兼容性情形本文介绍Ghost与使用RAID的计算机的兼容性。解释请注意:无论驱动器使用软件级RAID还是硬件级RAID,赛门铁克都不提供制作RAID驱动器映像的技术支持。能否成功制作RAID驱动器映像取决于特定的计算机模型、驱动程序控制器、硬盘驱动器和…

    2025年9月18日
    4
  • nslookup两种错误解决方法

    nslookup两种错误解决方法

    2021年8月14日
    344
  • 【STM32】HAL库 STM32CubeMX教程三—-外部中断(HAL库GPIO讲解)

    【STM32】HAL库 STM32CubeMX教程三—-外部中断(HAL库GPIO讲解)前言上一节我们讲解了STM32CubeMX的基本使用和工程的配置,那么这一节我们正式来学习CubeMX配置STM32的各个外设功能了今天我们会详细的带你学习STM32CubeMX配置外部中断,并且讲解HAL库的GPIO的各种函数,带你学习不一样的STM32如果还没有配置过工程,请参看上一篇博客《STM32CubeMX教程二–基本使用(新建工程点亮LED灯)》那么话不多说,我们开…

    2022年6月11日
    102
  • k8s pod的状态为evicted

    k8s pod的状态为evictedkubectlgetpods–namespace=ingress-nginx–watch

    2022年5月16日
    38
  • 购物程序「建议收藏」

    购物程序「建议收藏」#-*-coding:utf-8-*-"""CreatedonTueSep1116:35:292018@author:车路历程"&

    2022年8月3日
    6
  • js 数组插入删除[通俗易懂]

    js 数组插入删除[通俗易懂]常用的方法是遍历数组,然后使用splice()删除这里我们使用es6中findIndex()查找,然后删除functiondeleteFromArray(arr,compare){constindex=arr.findIndex(compare)if(index>-1){arr.splice(index,1)}}插入数据functioninsertArray(arr,val,compare,maxLen){//返回位置consti

    2022年9月30日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号