如何为同一布局中的多个按钮设置全局点击监听器?
How to have a global click Listener for multiple buttons in the same layout?
假设我们在一个布局中有 50 个按钮,而不是为每个按钮创建点击侦听器。
例如:
button1.setOnClickListener(this);
button2.setOnClickListener(this);
如果我们有 50 个像这样的按钮,将会有很多过时软件代码。
还有其他有效的方法吗?
您可以在设置布局后循环视图子项,因此,假设这些按钮都是主视图的子项,然后循环所有视图子项,然后检查 Button 实例并分配您的侦听器。
我的理解是否正确,您希望所有按钮都具有相同的 clickListener?如果是,那么您可以创建自己的按钮来扩展 Android 按钮 class,并在那里初始化 clickListener。
class MyButton(context: Context,...) : android.widget.Button(context,...) {
init {
this.setOnClickListener {
....
}
}
}
然后,在您的布局中,使用 MyButton
而不是 android.widget.Button
假设我们在一个布局中有 50 个按钮,而不是为每个按钮创建点击侦听器。
例如:
button1.setOnClickListener(this);
button2.setOnClickListener(this);
如果我们有 50 个像这样的按钮,将会有很多过时软件代码。
还有其他有效的方法吗?
您可以在设置布局后循环视图子项,因此,假设这些按钮都是主视图的子项,然后循环所有视图子项,然后检查 Button 实例并分配您的侦听器。
我的理解是否正确,您希望所有按钮都具有相同的 clickListener?如果是,那么您可以创建自己的按钮来扩展 Android 按钮 class,并在那里初始化 clickListener。
class MyButton(context: Context,...) : android.widget.Button(context,...) {
init {
this.setOnClickListener {
....
}
}
}
然后,在您的布局中,使用 MyButton
而不是 android.widget.Button