首页 > 解决方案 > 定位任何按钮 onClick,而不是特定按钮

问题描述

我有 4 个按钮,希望有 1 个onClickListener来检测单击了哪个按钮(获取按钮的 id)。

我怎样才能做到这一点?

button1 button2 button3 button4

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

}

我设想创建一个when这样的声明:

when (R.id) {
    R.id.button1 -> // do something
    R.id.button2 -> // do something
    R.id.button3 -> // do something
    R.id.button4 -> // do something
    else -> // do something
}

但是我不确定如何定位“单击的任何按钮”以及它onClickListener在我的活动中的外观。任何想法?

标签: androidkotlin

解决方案


在 MainActivity 中实现接口 View.OnClickListener

class MainActivity : AppCompatActivity(), View.OnClickListener

并覆盖 onClick

    覆盖有趣的点击(p0:查看?){
        当(R.id){
          R.id.button1 -> // 做点什么
            R.id.button2 -> // 做点什么
          R.id.button3 -> // 做点什么
          R.id.button4 -> // 做点什么
          else -> // 做某事
        }
    }

并写

setOnClickListener(this)

推荐阅读