【问题标题】:Can I reference an OnClickListener's button from inside the listener? (android)我可以从侦听器内部引用 OnClickListener 的按钮吗? (安卓)
【发布时间】:2011-09-30 17:47:10
【问题描述】:

我有一个 android 程序,其中有多个按钮使用相同的 OnClickListener,我希望能够从侦听器内部引用按钮的动态分配文本。有没有办法引用被按下以获取其文本的按钮?我不想让多个按钮特定的监听器做同样的事情。

【问题讨论】:

    标签: java android button listener


    【解决方案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
              }
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-03-24
            • 2016-05-01
            • 1970-01-01
            • 1970-01-01
            • 2021-08-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多