【问题标题】:Dynamically creating buttons with setOnClickListener使用 setOnClickListener 动态创建按钮
【发布时间】:2013-09-07 07:40:33
【问题描述】:

我正在动态创建按钮,我需要动态设置 setOnClickListener() 我目前正在尝试使用以下代码,但它给了我这个语法错误:

private void AddButton(){
    Button btn = new Button(this);
    btn.setOnClickListener(OnClick(this));

    layout.addView(delBtn);
}

public void OnClick(View v) {
    Log.d("Button", "Dynamically created button was clicked");
}

"The method OnClick(View) in the type ActivityExample is not applicable for the arguments ()"

我该如何解决这个问题?

编辑:我需要在AddButton() 方法之外使用单击侦听器方法上的按钮

【问题讨论】:

    标签: android onclicklistener android-button


    【解决方案1】:

    或者如果你想为监听器设置一个单独的变量:

    private void AddButton(){
        Button btn = new Button(this);
        btn.setOnClickListener(listener);
    
        layout.addView(delBtn);
    }
    
    public OnClickListener listener = new OnClickListener() {
    
        @Override
        public void onClick(View v) {
            Log.d("Button", "Dynamically created button was clicked");
        }
    };
    

    【讨论】:

      【解决方案2】:

      使用匿名内部类试试这个

       btn.setOnClickListener(new OnClickListener()
       {
              @Override
              public void onClick(View V)
              {
                    // do something
              }    
       });
      

      或者让你的类实现 OnClickListener。覆盖 onClick 方法和

       btn.setOnClickListener(this);
      

      【讨论】:

      • 我需要能够使用创建按钮方法之外的单独方法来做到这一点对不起
      • @Nicholas 让你的类实现 OnClickListener。然后实现 onClick 方法,然后实现 btn.setOnClickListener(this);
      【解决方案3】:

      你必须在你的类中实现 onClickListener。

      【讨论】:

        猜你喜欢
        • 2012-02-14
        • 2016-04-28
        • 2014-11-08
        • 1970-01-01
        • 2020-03-06
        • 2020-10-30
        • 2017-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多