Już tłumaczę na przykładzie:
w onCreate masz na przykład coś takiego
button_one.setOnClickListener(this);
button_two.setOnClickListener(this);
button_three.setOnClickListener(this);
Id buttonów mamy takie same jak ich nazwy.
Wtedy w metodzie onClick mamy coś takiego:
Intent intent = null;
switch(v.getId()){
case R.id.button_one:
intent = new Intent(getApplicationContext(),BaseExercise.class);
break;
case R.id.button_two:
intent = new Intent(getApplicationContext(), Program.class);
break;
}
startActivity(intent);
A Ty klikasz w button_three. Wtedy intent jest nullem i przez to dostajesz error NullPointerException. Ale to jest szczególny przypadek, który jest szansa, że nie wystąpi, jeśli jest dobrze napisane. Użycie default zabezpiecza przed tym, ale to jest takie dziwne obejście, które może się nie sprawdzić.