我可以从侦听器内部引用 OnClickListener 的按钮吗? (安卓)
Posted
技术标签:
【中文标题】我可以从侦听器内部引用 OnClickListener 的按钮吗? (安卓)【英文标题】:Can I reference an OnClickListener's button from inside the listener? (android) 【发布时间】:2011-09-30 17:47:10 【问题描述】:我有一个 android 程序,其中有多个按钮使用相同的 OnClickListener,我希望能够从侦听器内部引用按钮的动态分配文本。有没有办法引用被按下以获取其文本的按钮?我不想让多个按钮特定的监听器做同样的事情。
【问题讨论】:
【参考方案1】:在您的 onClick(View v) 中,您可以将其转换为按钮:
@Override
public void onClick(View v)
Button clickedButton = (Button)v;
// do stuff with it here.
【讨论】:
【参考方案2】:使用作为onClick(View v)
参数的视图
这可以转换为按钮并使用。
【讨论】:
【参考方案3】:onClick 的参数是发起点击的视图,它将是您附加侦听器的按钮。将其转换为 Button 以获取按钮对象。
【讨论】:
【参考方案4】:是的,应该有办法的。
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
【讨论】:
以上是关于我可以从侦听器内部引用 OnClickListener 的按钮吗? (安卓)的主要内容,如果未能解决你的问题,请参考以下文章
如何从事件侦听器内部将数据添加到同步广播 StreamController 到该控制器的 Stream?