You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中如何获取触发函数的Button控件属性?

Android中获取触发函数的Button控件属性方法

你当前代码里直接用this.button.name是错误的,因为this.button指向的是你代码里固定声明的某个按钮实例,没法区分到底是哪个按钮触发的函数。正确的做法是利用函数参数里的view对象——它就是实际被点击的那个控件,通过它来获取属性:

方法一:直接强转获取属性

把传入的view强转为Button类型,之后就能获取它的各种属性了:

fun test(view: android.view.View) {
    val clickedButton = view as Button
    // 获取按钮文本(如果你的"按钮名称"指的是显示文字)
    val buttonText = clickedButton.text.toString()
    // 也可以获取按钮ID、Tag等属性
    val buttonId = clickedButton.id
    val buttonTag = clickedButton.tag
    
    Toast.makeText(this, "点击的按钮:$buttonText", Toast.LENGTH_LONG).show()
}

方法二:安全判断后获取属性

如果担心控件类型不确定(比如有其他控件也会调用这个函数),可以先判断类型再操作:

fun test(view: android.view.View) {
    if (view is Button) {
        val buttonName = view.text.toString()
        Toast.makeText(this, buttonName, Toast.LENGTH_LONG).show()
    }
}

核心逻辑就是:触发函数的控件就是参数里的view,所有属性都要从这个对象里获取,而不是直接引用代码里的固定按钮实例。

内容的提问来源于stack exchange,提问作者kraisler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 13:09:53