Как поченить "вылет" из приложения при нажатии на кнопку

Я столкнулся с проблемой, когда нажимаешь на кнопку, то приложение вылитает. По задумкенужно так: при нажатии на кнопку, пользователя переносит на другой класс с другим layout.xml Вот код, от которого я отталкивался:

Intent intent = new Intent(MainActivity.this, PageTwo.class);
   startActivity(intent);

В некоторых вопросов с данного сайта было упомянуто,что лучше добавить MainActivity.startActivity, но у меня выходит ошибка:

Non-static method 'startActivity(android.content.Intent)' cannot be referenced from a static context Вот сами файлы: MainActivity:


import androidx.appcompat.app.AppCompatActivity;


import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    private Button button_start;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button_start = findViewById(R.id.idButtonMain);



    }
    public void sendPageTwo (View view){
        Intent intent = new Intent(MainActivity.this, PageTwo.class);
        startActivity(intent);

    }
}

PageTwo.class

import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;

public class PageTwo extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.page_two);

    }
}

activity_main.xml

<androidx.constraintlayout.widget.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="@color/black"
    android:padding="8dp"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Someone"
        android:textColor="@color/white"
        android:textSize="34sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:ignore="MissingConstraints" />


    <Button
        android:id="@+id/idButtonMain"
        style="@style/Widget.AppCompat.Button.Borderless"
        android:layout_width="115dp"
        android:layout_height="50dp"
        android:backgroundTintMode="add"
        android:text="Играть"
        android:onClick="sendPageTwo"
        android:textColor="@color/white"
        android:textColorHighlight="@color/white"
        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.735"
        tools:ignore="MissingConstraints" />

    <ImageView

        android:id="@+id/main_girl"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:padding="0dp"
        android:paddingStart="8dp"
        android:paddingLeft="130dp"
        android:paddingTop="120dp"
        android:src="@drawable/girl"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.218"
        tools:ignore="MissingConstraints" />

    <ImageView
        android:id="@+id/ccs_logo"
        android:layout_width="64dp"
        android:layout_height="64dp"


        android:src="@drawable/logo"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.083"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.976"
        tools:ignore="MissingConstraints" />


</androidx.constraintlayout.widget.ConstraintLayout>

page_two.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</LinearLayout>

P.s. Да, она пустая ибо просто нужно было проверить на правильность код.


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

Автор решения: Dmitriy Parkhomenko

Как оказалось, то проблема в следуйщем. Я отредактировал MainActivity до следуйщего кода

import androidx.appcompat.app.AppCompatActivity;


import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    Button button_start;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button_start = findViewById(R.id.idButtonMain);
        button_start.setOnClickListener(this);
    }

    public void onClick(View view) {
        switch(view.getId())
        {
            case R.id.idButtonMain:
                this.startActivity(new Intent(this, PageTwo.class));
                break;
        }

    }

}

И самое главное это добавить сам класс( в моём случае PageTwo) в Manifest!!!

  <activity android:name=".MainActivity" android:exported="true"

            android:screenOrientation="portrait"
            tools:ignore="LockedOrientationActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".PageTwo"
            android:label="PageTwo">

        </activity>
    </application>

</manifest>

Я добавил новое Activity после главного!

→ Ссылка