-1

So im trying to switch activity with the click of a button but the app crashes and i get the logcat error

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at jake.poewiki.Red.onCreate(Red.java:22)

The xml for the button

<Button
    android:background="@android:color/holo_orange_dark"
    android:textColor="#ffffff"
    android:id="@+id/GoToRed"
    android:layout_width="78dp"
    android:layout_height="48dp"
    android:text="Red"
    app:layout_constraintTop_toTopOf="parent"
    android:layout_marginTop="519dp"
    android:layout_marginLeft="0dp"
    app:layout_constraintLeft_toLeftOf="parent" />

The Java for the onclicklistner

 public class Gems extends AppCompatActivity {
Button GoRed, GoGreen, GoBlue, GoWhite, GoUniqueGems, GoHome, GoClasses, GoItems;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gems);
    GoGreen = (Button) findViewById(R.id.GotoGreen);
    GoRed = (Button) findViewById(R.id.GoToRed);
    GoBlue = (Button) findViewById(R.id.GoToBlue);
    GoWhite = (Button) findViewById(R.id.GoToWhite);
    GoUniqueGems = (Button) findViewById(R.id.GoToUnique);
    GoHome = (Button) findViewById(R.id.GoToHome);
    GoItems = (Button) findViewById(R.id.GoToItems);
    GoClasses = (Button) findViewById(R.id.GoToClasses);

    GoRed.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent GoRed = new Intent(Gems.this, Red.class);
            startActivity(GoRed);
        }
    });

OnCreate for Red.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_red);
    GoGems = (Button) findViewById(R.id.GoToGems);
    GoItems = (Button) findViewById(R.id.GoToItems);
    GoHome = (Button) findViewById(R.id.GoToHome);
    GoClasses = (Button) findViewById(R.id.GoToClasses);

Line 22 is a on click listener that allows the user to go back to the gems page

    GoGems.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent GoGems = new Intent(Red.this, Gems.class);
            startActivity(GoGems);
Jake G
  • 3
  • 3

1 Answers1

0

You are facing problem because your Button is not properly initialised to Android runtime. Try changing same identifier you given to Button and Intent

GoRed.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent i= new Intent(Gems.this, Red.class);
        startActivity(i);
    }
});

Hope it works

Sangeeth Nandakumar
  • 1,362
  • 1
  • 12
  • 23