Search code examples
javaandroidandroid-activitynulloncreate

Chronometer is null even though parent class initialised it


I got this weird problem and it's bugging me. I don't understand why I get this NullPointerException when I did initialise chronometer in MainActivity. If I initialise chronometer in SecondActivity the program works fine.

Hopefully someone can clear this up...

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Chronometer.setOnChronometerTickListener(android.widget.Chronometer$OnChronometerTickListener)' on a null object reference

-

public class MainActivity extends AppCompatActivity {

    protected Chronometer chronometer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //chronometer gets initialised here but it's still null appearantly
        chronometer = (Chronometer) findViewById(R.id.chronometer1);

        //this works
        getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#cd2626")));
    }
}

-

public class SecondActivity extends MainActivity {

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

         //if chronometer gets initialised again, program does work.
         //chronometer = (Chronometer) findViewById(R.id.chronometer1)
     }
}

Solution

  • include setContentView(R.layout.main_layout); in your mainactivity otherwise findviewbyid will not be able to find chronometer and it will always show null exception