new onClickListener(){}类型的onClick(View)方法必须覆盖或实现超类型方法

时间:2015-05-30 21:24:26

标签: android onclicklistener

我正在尝试在按钮上设置OnClickListener以获取选中的复选框,但我在此处收到此错误如何解决?

  
      
  • 无法将OnClickListener解析为某种类型   
        
    • 类型View中的方法setOnClickListener(View.OnClickListener)不适用于参数(new   OnClickListener(){})    - 新的OnClickListener(){}类型的onClick(View)方法必须覆盖或实现超类型方法
    •   
  •   

我在MainActivity中的方法:

private void createRadioButton(final ArrayList<Integer> items) {

        final LinearLayout ll = (LinearLayout) findViewById(R.id.lila);
        for (int i = 0; i < items.size(); i++) {
            CheckBox cb = new CheckBox(this);
            cb.setText(items.get(i) + "");
            cb.setId(i);
            ll.addView(cb);

        }
        Button btn = new Button(this);
        btn.setLayoutParams(new LinearLayout.LayoutParams(500, 150));
        btn.setText("submit");
        ll.addView(btn);

        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                System.out.println("I have already overridden it. ");

            }
        });


    }

2 个答案:

答案 0 :(得分:2)

您的Java文件顶部的View.OnClickListener语句列表中没有import。添加:

import android.view.View.OnClickListener;

答案 1 :(得分:1)

    private void createRadioButton(final ArrayList<Integer> items) {

    final LinearLayout ll = (LinearLayout) findViewById(R.id.lila);
    for (int i = 0; i < items.size(); i++) {
        CheckBox cb = new CheckBox(this);
        cb.setText(items.get(i) + "");
        cb.setId(i);
        ll.addView(cb);

    }
    Button btn = new Button(this);
    btn.setLayoutParams(new LinearLayout.LayoutParams(500, 150));
    btn.setText("submit");
    ll.addView(btn);

    **btn.setOnClickListener(new View.OnClickListener()** {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            System.out.println("I have already overridden it. ");

        }
    });


}

只需将新的OnClickListener()更改为新的View.OnClickListener()