【发布时间】:2020-08-24 23:59:15
【问题描述】:
我有 3 个按钮调用相同的方法,在方法中我希望能够检索按钮的文本或 ID。
有这样的吗?
fun getButtonID(view: View) {
var buttonTxt = this.getText
Log.d("DEV", "${buttonTxt}")
}
【问题讨论】:
标签: android-studio kotlin button
我有 3 个按钮调用相同的方法,在方法中我希望能够检索按钮的文本或 ID。
有这样的吗?
fun getButtonID(view: View) {
var buttonTxt = this.getText
Log.d("DEV", "${buttonTxt}")
}
【问题讨论】:
标签: android-studio kotlin button
onClickListeners 将点击的View 传递给他们的回调,所以你可以做这样的事情来识别它:
fun handleButtonClick(view: View) {
with (view as Button) {
Log.d("TAG", "$text, $id")
}
}
然后像这样设置按钮
button1.setOnClickListener { view ->
handleButtonClick(view)
}
这是将View 转换为Button 的一种方法 - 通过在处理程序方法中执行此操作,您只需在一个地方执行此操作。而且由于您的 onClick lambda 只是调用方法并直接传递参数(也不需要强制转换),这意味着您可以将其简化为函数引用,因为您的函数采用与 lambda 相同的参数(即只是一个View):
button1.setOnClickListener(::handleButtonClick)
当我们在做的时候
listOf(button1, button2, button3).forEach {
it.setOnClickListener(::handleButtonClick)
}
【讨论】:
handleButtonClick() 方法(这样您就不必设置点击监听器)
Dialog 上设置按钮处理程序之类的事情)