【问题标题】:Incompatible types: Mainactivity cannot be converted to OnClickListener不兼容的类型:Mainactivity 无法转换为 OnClickListener
【发布时间】:2016-03-06 14:13:58
【问题描述】:

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

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

我对此真的很陌生,几乎不知道代码的含义是什么,我刚上网。

【问题讨论】:

  • 确保您的活动implements OnClickListener
  • 非常感谢先生!!它奏效了。

标签: android incomplete-type


【解决方案1】:

必须像这样更改您的 Activity 才能使其正常工作

    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.
    }
}

    }

这将使您的代码工作

【讨论】:

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

    【讨论】:

    • 方法 1 对我有用。原来我错过了这段代码> btn.setOnClickListener(this);。并且刚刚将我的代码从 btnName 修改为 public void onClick(View v),因为在初始化 Button 时已经声明了 Button 名称,非常感谢。 ♥♥♥
    【解决方案3】:

    在你的 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 对象。

    【讨论】:

      【解决方案4】:

      解决此问题的简单步骤。

      1.将光标移到突出显示的这个词上

      2.然后按alt回车

      3.然后点击

      让'MainActivity'实现'android.view.View.OnClickListener'

      【讨论】:

        【解决方案5】:

        我遇到了同样的问题并通过以下方式解决了。

        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{....}
        

        【讨论】:

          【解决方案6】:

          尝试让您的活动实现“View.OnClickListener”。
          这会有所帮助

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-10-03
            • 1970-01-01
            • 2021-12-20
            • 2016-10-17
            相关资源
            最近更新 更多