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