Well, I'm trying to create an intent on a "login.java" the code is :
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);
}
});
But it says that I can't go to the other activity saying this :
Error:(24, 21) error: no suitable constructor found for Intent(,Class) constructor Intent.Intent(String,Uri) is not applicable (argument mismatch; cannot be converted to String) constructor Intent.Intent(Context,Class) is not applicable (argument mismatch; cannot be converted to Context)
and...
Error:Execution failed for task ':app:compileDebugJava'. Compilation failed; see the compiler error output for details.
Just a few lines to explain the reason why this
does not work in:
i = new Intent(this, MainActivity.class)
The intent is created inside another class, here an anonymous inner class OnClickListener
. Thus this
does not refer the instance of your Activity (or Context) as intended but the instance of your anonymous inner class OnClickListener
.
So you should provide the correct context of your class.
i = new Intent(YourClassName.this, MainActivity.class)
use
if you want to send it from login.java
to mainactivity.class
use
Intent intent=new Intent(login.this,Mainactivity.class);
startActivity(intent);
updated code in to your activity
Button btEntrar = (Button) findViewById(R.id.btnSingIn);
btEntrar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i;
i = new Intent(login.this, MainActivity.class);
startActivity(i);
}
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With