Android Studio java.lang.IllegalStateException: Could not find method maingo(View) in a parent or ancestor Context

Почему при нажатии на кнопку возникает ошибка

2021-11-23 21:17:23.597 9450-9450/com.kingleystudio.easypython E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.kingleystudio.easypython, PID: 9450
    java.lang.IllegalStateException: Could not find method maingo(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'lesson1btn2'
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:424)
        at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:381)
        at android.view.View.performClick(View.java:6294)
        at android.view.View$PerformClick.run(View.java:24770)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

При том что в MainActivity это работало, а здесь не хочет.

lesson1.java

package com.kingleystudio.easypython;

import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class lesson1 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lesson1);
    }

    public void lesson5go(View view) {

    }

    public void maingo(View view) {
        // Do something in response to button click
    }
}

activity_lesson1.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00109F"
    tools:context=".lesson1">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <TextView
                android:id="@+id/lesson1title"
                android:layout_width="wrap_content"
                android:layout_height="70dp"
                android:fontFamily="@font/rubik_mono_one"
                android:text="Урок 1. Установка python на windows"
                android:gravity="center"
                android:paddingTop="10dp"
                android:textColor="#FFFFFF"
                android:textSize="27sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="1.0"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.0" />

            <TextView
                android:id="@+id/lesson1text"
                android:layout_width="wrap_content"
                android:layout_height="800dp"
                android:autoLink="web"
                android:fontFamily="sans-serif-thin"
                android:text="Текст"
                android:textColor="#FFFFFF"
                android:textSize="25sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="1.0"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.0" />


            <Button
                android:id="@+id/lesson1btn"
                android:layout_width="fill_parent"
                android:layout_height="100dp"
                android:background="#ff4dbb"
                android:fontFamily="@font/rubik_mono_one"
                android:gravity="center"
                android:onClick="lesson5go"
                android:text="Далее"
                android:textColor="#FFFFFF"
                android:textSize="27sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="1.0"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.0" />

            <Button
                android:id="@+id/lesson1btn2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="#ff4dbb"
                android:fontFamily="@font/rubik_mono_one"
                android:layout_marginTop="5dp"
                android:textColor="#FFFFFF"
                android:onClick="maingo"
                android:text="Назад" />


        </LinearLayout>
    </ScrollView>
</android.support.constraint.ConstraintLayout>

Ответы (1 шт):

Автор решения: Eva Evakuator

Для начала объявите кнопку в вашем классе!

Button lesson1btn;

В onCreate

lesson1btn = findViewById(R.id.lesson1btn);

Дальше у вас кнопка

   <Button
        android:id="@+id/lesson1btn"
        android:layout_width="fill_parent"
        android:layout_height="100dp"
        android:background="#ff4dbb"
        android:fontFamily="@font/rubik_mono_one"
        android:gravity="center"
        android:onClick="lesson5go"
        android:text="Далее"
        android:textColor="#FFFFFF"
        android:textSize="27sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" />

при нажатие на неё у вас срабатывает метод public void lesson5go в вашем примере он пустой, вам нужно указать что должно происходить при нажатие на кнопку

К примеру обработчик открывает новую активность

public void lesson5go(View view) {
    startActivity(new Intent(this, PolicyActivity.class));
    finish();
}
→ Ссылка