不兼容的类型:Mainactivity无法转换为OnClickListener

时间:2016-03-06 14:13:58

标签: android incomplete-type

Click here. This is link to image error I'm getting

enter image description here

我已经开始使用最基本的计算器应用程序来添加和减去两个数字 我为SetOnClickListener()收到了这个不兼容的错误。 在此之前,我收到一条错误消息“ActivityBar已被弃用”,之后我将其更改为 AppCompactActivity和错误已清除。

我对此非常陌生,对代码的含义几乎没有任何线索我只是在网上得到它。

6 个答案:

答案 0 :(得分:4)

您的活动必须像这样更改以使其正常工作

    public class MainActivity extends AppCompatActivity implements View.OnClickListener {

     @Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.button1:
            //Start activity one
            break;
        case R.id.button2
            //Start activiy two
            break;
        // Do this for all buttons.
    }
}

    }

这将使您的代码正常工作

答案 1 :(得分:2)

方法
1。 :

public class MainActivity extends AppCompatActivity implements  View.OnClickListener {
   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Button btn= (Button) findViewById(R.id.fab);
        btn.setOnClickListener(this);


    }

    @Override
    public void onClick(View v) {

    }
}

2。

      button.setOnClickListener(setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


            }
        }); 

3。

public class MainActivity extends AppCompatActivity  {
   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       Button btn= (Button) findViewById(R.id.fab);
       btn.setOnClickListener(onClickListener);


    }

    View.OnClickListener onClickListener= new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    };

}

答案 2 :(得分:1)

在onCreate方法中使用此语句

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

               //what you need to do when that button is clicked
            }
        });

此处按钮是您从xml中的按钮ID创建的Button对象。

答案 3 :(得分:1)

解决此问题的简单步骤。

1.将光标突出显示该单词

2.然后按alt并输入

3.点击

制作' MainActivity'实现' android.view.View.OnClickListener'

答案 4 :(得分:0)

我遇到了同样的问题并以下列方式解决了这个问题。

public class MainActivity extends Activity {
  protected Button delhi_University;
  protected Button indraprastha_University;
  protected Button private_University;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_activity);
    final Intent intent = new Intent(MainActivity.this,Transact.class);
    delhi_University  = (Button)findViewById(R.id.button);
    indraprastha_University = (Button)findViewById(R.id.button2);
    private_University = (Button)findViewById(R.id.button3);
  //  delhi_University.setOnClickListener(MainActivity2Activity.this);

    delhi_University.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            startActivity(intent);
        }});
    indraprastha_University.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            startActivity(intent);
        }
    });
    private_University.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            startActivity(intent);
        }
    });

}

如果你想使用上面的方法,那么你只需要在声明类的时候实现View.OnClickListener。按照以下方式:

   public class MainActivity extends Activity implements View.OnClickListener{....}

答案 5 :(得分:-2)

尝试让您的活动实现" View.OnClickListener"。
那将有助于