Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android studio 科特林:检查单击了哪个按钮_Android Studio_Kotlin_Button - Fatal编程技术网

Android studio 科特林:检查单击了哪个按钮

Android studio 科特林:检查单击了哪个按钮,android-studio,kotlin,button,Android Studio,Kotlin,Button,我有3个按钮调用相同的方法,在这个方法中,我希望能够检索按钮的文本或ID 有这样的东西吗 fun getButtonID(view: View) { var buttonTxt = this.getText Log.d("DEV", "${buttonTxt}") } onClickListeners将单击的视图传递给它们的回调,这样您就可以执行此类操作来识别它: fun handleButtonClick(

我有3个按钮调用相同的方法,在这个方法中,我希望能够检索按钮的文本或ID

有这样的东西吗

 fun getButtonID(view: View) {

        var buttonTxt = this.getText
        Log.d("DEV", "${buttonTxt}")

    }

onClickListener
s将单击的
视图
传递给它们的回调,这样您就可以执行此类操作来识别它:

fun handleButtonClick(view: View) {
    with (view as Button) {
        Log.d("TAG", "$text, $id")
    }
}
然后把你的钮扣像

button1.setOnClickListener { view ->
    handleButtonClick(view)
}
这是将
视图
强制转换为
按钮
的一种方法-通过在handler方法中执行,您只能在一个位置执行。由于您的
onClick
lambda只调用方法并直接传入参数(无需强制转换),这意味着您可以将其简化为函数引用,因为您的函数采用lambda使用的参数相同(即仅为
视图
):

当我们这么做的时候

listOf(button1, button2, button3).forEach {
    it.setOnClickListener(::handleButtonClick)
}

onClickListener
s将单击的
视图
传递给它们的回调,这样您就可以执行此类操作来识别它:

fun handleButtonClick(view: View) {
    with (view as Button) {
        Log.d("TAG", "$text, $id")
    }
}
然后把你的钮扣像

button1.setOnClickListener { view ->
    handleButtonClick(view)
}
这是将
视图
强制转换为
按钮
的一种方法-通过在handler方法中执行,您只能在一个位置执行。由于您的
onClick
lambda只调用方法并直接传入参数(无需强制转换),这意味着您可以将其简化为函数引用,因为您的函数采用lambda使用的参数相同(即仅为
视图
):

当我们这么做的时候

listOf(button1, button2, button3).forEach {
    it.setOnClickListener(::handleButtonClick)
}

顺便说一下,您可以使用按钮XML中的onClick attriubte调用
handleButtonClick()
方法(这样您就不必设置单击侦听器了)耶!您有几个选项-了解通用代码版本很好,但是它会弹出很多(与其他事件以及在
对话框上设置按钮处理程序等)顺便说一句,您可以使用按钮XML中的onClick attriubte调用
handleButtonClick()
方法(这样你就不必设置点击监听器了)是的!你有几个选项-虽然知道通用代码版本很好,但它会弹出很多(与其他事件一起,以及在
对话框上设置按钮处理程序等事情)