(我在android java中使用new时自动完成)在kotlin中的替代方法是什么?

时间:2019-06-14 04:02:54

标签: android kotlin

我正在尝试实施seekBar1.setOnSeekBarChangeListener()

在Java中,我只写了new关键字,自动完成功能帮助我实现并知道必须实现哪个接口

科特林有没有这样的方法 或者我必须记住所有这些接口

我知道kotlin中没有新的关键字,但是我询问写对象自动完成后如何进行

5 个答案:

答案 0 :(得分:1)

您要查找的快捷方式是Ctrl + Shift + Space

答案 1 :(得分:0)

在kotlin中,使用“ object”关键字实现接口。

seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
            override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {

            }
            override fun onStartTrackingTouch(seekBar: SeekBar?) {

            }
            override fun onStopTrackingTouch(seekBar: SeekBar?) {

            }
})

答案 2 :(得分:0)

使用object来实现一个接口。

// Set a SeekBar change listener
        seek_bar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {

            override fun onProgressChanged(seekBar: SeekBar, i: Int, b: Boolean) {
                // Do something

            }

            override fun onStartTrackingTouch(seekBar: SeekBar) {
                // Do something

            }

            override fun onStopTrackingTouch(seekBar: SeekBar) {
                // Do something

            }
        })

答案 3 :(得分:0)

kotlin中没有新的关键字,只是不要使用它。 您必须使用object :覆盖匿名内部类

seekBar.setOnSeekBarChangeListener(object :SeekBar.OnSeekBarChangeListener{
            override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
            }

            override fun onStartTrackingTouch(seekBar: SeekBar?) {
            }

            override fun onStopTrackingTouch(seekBar: SeekBar?) {
            }

        })

请参阅文档https://kotlinlang.org/docs/reference/object-declarations.html

答案 4 :(得分:0)

科特林不包含关键字。所以是的,根据您的困境,痛苦就是脖子。但这确实为您提供了自动完成功能!

您要做的就是使特定接口的 object 成为对象,然后生成关于不从该接口实现方法的错误,然后使用命令Alt+Enter您可以从该界面。

在您的情况下,只需键入:

seekBar1.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {})

哪个会在 object 关键字处向您显示编译错误。


如果您的界面具有单一方法实现,则可以直接使用 Sam-constructor实现。即在Kotlin中为点击侦听器提供直接的自动完成功能,例如:

view.setOnClickListener { 
    //This is the same click listener we used to implement in our Java code 
}