【发布时间】:2011-09-30 17:47:10
【问题描述】:
我有一个 android 程序,其中有多个按钮使用相同的 OnClickListener,我希望能够从侦听器内部引用按钮的动态分配文本。有没有办法引用被按下以获取其文本的按钮?我不想让多个按钮特定的监听器做同样的事情。
【问题讨论】:
标签: java android button listener
我有一个 android 程序,其中有多个按钮使用相同的 OnClickListener,我希望能够从侦听器内部引用按钮的动态分配文本。有没有办法引用被按下以获取其文本的按钮?我不想让多个按钮特定的监听器做同样的事情。
【问题讨论】:
标签: java android button listener
在您的 onClick(View v) 中,您可以将其转换为按钮:
@Override
public void onClick(View v) {
Button clickedButton = (Button)v;
// do stuff with it here.
}
【讨论】:
使用作为onClick(View v)参数的视图
这可以转换为按钮并使用。
【讨论】:
onClick 的参数是发起点击的视图,它将是您附加侦听器的按钮。将其转换为 Button 以获取按钮对象。
【讨论】:
是的,应该有办法的。
public abstract void onClick (View v)
您会注意到被点击的 View 被传递到 onClick() 方法中。因此,如果您有一个可用的视图(按钮)的引用(例如,作为 Activity 中的实例变量),那么您可以这样做:
public abstract void onClick (View v) {
if (v == firstButton) {
//Do some stuff
}
else if (v == secondButton) {
//Do some other stuff
}
}
【讨论】: