使用onClickListener时出错(意图)

Ski*_*ᴉʞS 14 java android android-intent

好吧,我正在尝试创建一个"login.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);


        }
    });
Run Code Online (Sandbox Code Playgroud)

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

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

和...

错误:任务':app:compileDebugJava'的执行失败.编译失败; 请参阅编译器错误输出以获取详细信

Suf*_*ori 34

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

i = new Intent(this, MainActivity.class)
Run Code Online (Sandbox Code Playgroud)

意图是在另一个类中创建的,这里是一个匿名的内部类OnClickListener.因此this,不会按预期引用您的Activity(或Context)实例,而是引用您的匿名内部类的实例OnClickListener.

所以你应该提供你班级的正确背景.

i = new Intent(YourClassName.this, MainActivity.class)
Run Code Online (Sandbox Code Playgroud)


Abh*_*bey 6

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

 Intent intent=new Intent(login.this,Mainactivity.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)