android - 定位任何按钮 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
在我的活动中的外观。任何想法?
解决方案
在 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)
推荐阅读
- javascript - 自动刷新 Div 容器
- c# - Pymysql - 数据包序列号错误 - 得到 1 预期 1
- python - Jupyter:无法使用 pyodbc 连接到 MS SQL Server
- arraylist - 如何将嵌套的对象列表转换为地图(地图
>) 使用 lambdas/streams - java - HttpURLConnection 的套接字泄露
- elasticsearch - Elasticsearch 批量更新查询?
- python-3.x - 尝试使用两个数据帧找到匹配项并为匹配项生成相应的值
- angular - 哪种类型的 og:type 值允许元属性 product:retailer_item_id?
- conv-neural-network - 在特定对象检测任务上使用预训练权重
- c# - 无法从“对象”转换为“UnityEngine.Vector2”