kotlin中匿名内部类的写法

2023-05-16

原本java开发安卓常用的setOnClickListener,用kotlin写,也变得五花八门了。

        var view: View = findViewById(R.id.tv)
        //最接近原先java的写法
        view.setOnClickListener(object : View.OnClickListener {
            override fun onClick(v: View?) {
                Toast.makeText(this@MainActivity, "ff3", Toast.LENGTH_SHORT).show()
            }
        })

        //带括号 it
        view.setOnClickListener(View.OnClickListener() {
            Toast.makeText(this, "ff1", Toast.LENGTH_SHORT).show()
        })

        //不带括号 it
        view.setOnClickListener(View.OnClickListener {
            Toast.makeText(this, "ff2", Toast.LENGTH_SHORT).show()
        })
        
        //kotlin的lambda表达式
        view.setOnClickListener { v ->
            Toast.makeText(v.context, "ff4", Toast.LENGTH_SHORT).show()
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kotlin中匿名内部类的写法 的相关文章

  • 如何在 Android 应用程序中每天重复一个操作?

    我每天都想重复一个动作 即使应用程序未运行或设备已重新启动 重新启动 它也必须继续工作 在我的代码中 我尝试每 1 分钟显示一条 TOAST 消息 作为测试 它在模拟器中工作正常 但在真实设备上不起作用 我尝试对修复进行一些更改 正如我在一
  • Kotlin自定义get执行方法调用

    为了提高对 SharedPreferences Editor 调用的可读性 我想使用一个 Kotlin 变量 每次需要新的 SharedPreferences Editor 时都会执行 getSharedPreferences edit 最
  • Kotlin 中扩展函数的多态性

    我有几个我无法控制的课程 我已经在几个常见的 属性 上创建了几个同名的扩展方法 名称相同的扩展函数始终返回相同的值类型 尽管针对每种类型的接收器以不同的方式计算 这里有一个简化的基于仅一个属性的内置类型的示例 DOES NOT COMPIL
  • Kotlin 协程 - 优雅地处理挂起函数中的错误

    尝试使用从异步方法调用的挂起函数来实现对错误的优雅处理 如何捕获挂起方法引发的错误 suspend fun findById id Long User throw Exception my exception intentionally t
  • Kotlin - 来自 KType 的 KClass<*>

    在 Kotlin 中 我可以获得KType from a KClass lt gt 像这样 Int class createType kotlin Int 我如何做相反的事情并获得KClass
  • Kotlin 中 with 和 run 的区别

    Do with and run具有相同的功能 只是语法不同 或者之间是否存在重大差异with and run 哪个是正确的方法 adapter run notifyDataSetChanged if activityDetails isEm
  • 在 Android 中启用展开布局时,如何默认使用折叠布局显示自定义通知

    当用户折叠或展开通知时 我想通过支持小型和大型布局来显示我的自定义通知 如上面的屏幕截图所示 但结果它默认显示扩展通知 我想默认将其显示为折叠通知 并且仅在用户展开时显示展开通知 请检查我的代码如下 private fun initCust
  • Kotlin 的合成属性冲突

    我是科特林新手 除了其他非常有趣的事情之外 我还发现了 Android 扩展 根据文档 https kotlinlang org docs tutorials android plugin html importing synthetic
  • Kotlin 合约不适用于扩展函数中的空检查

    我正在尝试编写一个返回的扩展函数true如果该值不是null或 0 并使用合约向编译器保证如果我返回true 该值非空 但是 它似乎不适用于智能投射 当我尝试将值传递给采用不可空值的函数时 它仍然无法编译Long 我尝试编译这段代码 但它不
  • 从列表中删除项目会导致 LazyColumn 中显示错误

    我认为这是一个奇怪的情况 我正在显示一个列表Textfields in a LazyColoumn 用户可以删除每个文本字段 但这样做时 它会复制 REPLACE 文本字段中的值 发生了什么 我添加了 3 个人 第 1 人 第 2 人 第
  • 如何在 Kotlin 中模拟和验证 Lambda 表达式?

    在 Kotlin 和 Java 8 中 我们可以使用 Lambda 表达式来删除样板回调接口 例如 data class Profile val name String interface ProfileCallback fun onSuc
  • Kotlin 协程异步延迟

    我正在研究 Kotlin Android 中的协程概念 因此 由于我不想使用 Timertask 延迟后的处理程序 所以我想使用协程在一定延迟后执行异步协程 我有以下半代码 launch UI val result async Common
  • Kotlin:在片段内打开新活动

    使用按钮时如何在片段内打开新的活动 我试过这个 override fun onViewCreated view View savedInstanceState Bundle super onViewCreated view savedIns
  • 当字符串位于数组中时,如何替换字符串中的最后一个字符

    如果某个字符串以某个字符结尾arrayOf X Y Z 我想用新字符替换它A 我不知道该怎么做 我尝试过的一切都不起作用 你可以这样做 var test Some string Z if test lastOrNull in arrayOf
  • 如何运行传递给模拟方法的 lambda 函数?

    我想知道是否可以运行作为参数传递给模拟函数的 lambda 函数 并在调用模拟方法时运行它 我正在使用 Mockk 我想象代码是这样的 class DataManager fun submit lambda Int gt Unit val
  • 如何访问与枚举类中每个枚举常量关联的每个 SerialName?

    我有一个数据类 我想使其可序列化 data class ClassTemp val str String val tmp Temp Serializable enum class Temp SerialName Serial Name 1
  • 有什么区别!!和 ?在科特林?

    我是科特林新手 我想知道这两者之间的区别 and 在下面的代码中 下面有两个片段 第一个使用 for mCurrentDataset另一个有 对于同一个变量 if mCurrentDataset load mDataSetString ge
  • Vaadin 12 将对象传递给 JavaScript 函数:无法对类进行编码

    Vaadin 12 Kotlin 项目 In my myPage html我有JavaScript myObject redirectToCheckout sessionId 1111 2222 所以我需要调用javaScript函数red
  • 修改列表时,Jetpack composecollectAsState() 未收集热流

    当我使用collectAsState the collect 仅当传递新列表时触发 而不是在修改和发出列表时触发 查看模型 HiltViewModel class MyViewModel Inject constructor ViewMod
  • Android 中 Kotlin 协程的正确使用方式

    我正在尝试使用异步更新适配器内的列表 我可以看到有太多的样板 这是使用 Kotlin 协程的正确方法吗 这个可以进一步优化吗 fun loadListOfMediaInAsync async CommonPool try Long runn

随机推荐