Ошибка использования onClickListener (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);


        }
    });

Но в нем говорится, что я не могу пойти на другую деятельность, говоря это:

Ошибка: (24, 21) ошибка: не найдено подходящего конструктора для Intent (, Class)     Конструктор Intent.Intent(String, Uri) неприменим     (несоответствие аргумента, невозможно преобразовать в String)     конструктор Intent.Intent(Контекст, класс) неприменим     (несоответствие аргумента, невозможно преобразовать в контекст)

и...

Ошибка: выполнение выполнено для задачи ': app: compileDebugJava'. Ошибка компиляции; для получения подробной информации см. вывод ошибки компилятора.

Ответ 1

Всего несколько строк, чтобы объяснить причину, по которой this не работает:

i = new Intent(this, MainActivity.class)

Цель создается внутри другого класса, здесь анонимный внутренний класс OnClickListener. Таким образом, this не ссылается на экземпляр вашего действия (или контекста), как предполагалось, а на экземпляр вашего анонимного внутреннего класса OnClickListener.

Итак, вы должны указать правильный контекст своего класса.

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

Ответ 2

использование если вы хотите отправить его с login.java на mainactivity.class, используйте

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

Ответ 3

обновленный код для вашей деятельности

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


    }
});

Ответ 4

попробуйте использовать

Intent i = new Intent(login.this, mainActivity.class);

надеюсь, что это поможет

Ответ 5

Вы добавили manifest.xml или попробуйте этот код?
Intent i = new Intent(login.this,mainActivity.class);