Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error using onClickListener (Intent)

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.

like image 228
Skizo-ozᴉʞS Avatar asked Dec 30 '14 10:12

Skizo-ozᴉʞS


3 Answers

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)
like image 167
Sufiyan Ghori Avatar answered Nov 17 '22 10:11

Sufiyan Ghori


use if you want to send it from login.java to mainactivity.class use

 Intent intent=new Intent(login.this,Mainactivity.class);
startActivity(intent);
like image 36
Abhishek Chaubey Avatar answered Nov 17 '22 10:11

Abhishek Chaubey


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);


    }
});
like image 2
Naveen Tamrakar Avatar answered Nov 17 '22 10:11

Naveen Tamrakar