使用 onClickListener (Intent) 时出错

2022-09-03 03:58:28

好吧,我正在尝试在“登录.java”上创建一个意图,代码是:

 Button btEntrar = (Button) findViewById(R.id.btnSingIn);
    btEntrar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i;
            i = new Intent(this, MainActivity.class);
            startActivity(i);


        }
    });

但它说我不能去其他活动说这个:

错误:(24, 21) 错误:没有为 Intent(,Class) 构造函数 Intent 找到合适的构造函数 Intent。Intent(String,Uri) 不适用(参数不匹配;无法转换为字符串)构造函数 Intent。Intent(Context,Class) 不适用(参数不匹配;无法转换为 Context)

和。。。

错误:任务“:app:compileDebugJava”的执行失败。编译失败;有关详细信息,请参阅编译器错误输出。


答案 1

只需几行来解释为什么不起作用:this

i = new Intent(this, MainActivity.class)

意图是在另一个类中创建的,这里是一个 匿名的内部类 。因此,不会按预期引用您的活动(或上下文)的实例,而是引用您的匿名内部类的实例。OnClickListenerthisOnClickListener

因此,您应该提供类的正确上下文。

i = new Intent(YourClassName.this, MainActivity.class)

答案 2

使用 如果你想从发送它使用login.javamainactivity.class

 Intent intent=new Intent(login.this,Mainactivity.class);
startActivity(intent);

推荐