I want to enter details from EnterDetails class and view saved details in MainActivity.
public class MainActivity extends AppCompatActivity {
EditText nameBox ;
EditText sclBox;
Spinner genderMenu;
EditText ageBox;
SharedPreferences sharedPref;
TextView label ;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    nameBox = findViewById(R.id.editText);
    sclBox = findViewById(R.id.editText3);
    ageBox = findViewById(R.id.editText2);
    genderMenu = findViewById(R.id.spinner);
    sharedPref = getSharedPreferences("mypref",Context.MODE_PRIVATE);
    label = findViewById(R.id.textView);
    if(isDetailsEmpty(0)){
        label.setText("Enter new Details");
    }else{
        setDetails();
    }
}
public  boolean isDetailsEmpty(int i){
    if(i ==0) {
        if (sharedPref.getString("txtName", "").isEmpty() || sharedPref.getString("txtAge", "").isEmpty() || sharedPref.getString("txtScl", "").isEmpty()) {
            return true;
        } else {
            return false;
        }
    }{
        if(nameBox.getText().toString().isEmpty() || ageBox.getText().toString().isEmpty() || sclBox.getText().toString().isEmpty()){
            return true;
        }else{
            return false;
        }
    }
}
public void setDetails(){
    label.setText("Name : " +sharedPref.getString("txtName","Default")+"\n"+
            "Age : " +sharedPref.getString("txtAge","Default")+"\n"+
            "Gender : " +sharedPref.getString("optGender","Default")+"\n"+
            "School : " +sharedPref.getString("txtScl","Default")+"\n");
}
public void onClickLoadIntent(View v){
    Intent enterDet = new Intent(this, EnterDetails.class);
    startActivity(enterDet);
}
}
`public class EnterDetails extends MainActivity {
@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.enter_details);
}
public void onClickSave(View v){
    if(isDetailsEmpty(1)) {
        Toast.makeText(EnterDetails.this,"Empty Details!", Toast.LENGTH_SHORT).show();
    }else{
        SharedPreferences.Editor editor = sharedPref.edit();
        editor.putString("txtName", nameBox.getText().toString());
        editor.putString("txtAge", ageBox.getText().toString());
        editor.putString("optGender", genderMenu.getSelectedItem().toString());
        editor.putString("txtScl", sclBox.getText().toString());
        editor.commit();
        Toast.makeText(EnterDetails.this,"Saved", Toast.LENGTH_SHORT).show();
        startActivity(new Intent(this,MainActivity.class));
    }
}
} `
I want to enter details from EnterDetails class and view saved details in MainActivity. But I get the folloing error.
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.userdetails, PID: 31945
java.lang.IllegalStateException: Could not execute method for android:onClick
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:390)
    at android.view.View.performClick(View.java:5646)
    at android.view.View$PerformClick.run(View.java:22473)
    at android.os.Handler.handleCallback(Handler.java:761)
    at android.os.Handler.dispatchMessage(Handler.java:98)
    at android.os.Looper.loop(Looper.java:156)
    at android.app.ActivityThread.main(ActivityThread.java:6517)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385)
    at android.view.View.performClick(View.java:5646) 
    at android.view.View$PerformClick.run(View.java:22473) 
    at android.os.Handler.handleCallback(Handler.java:761) 
    at android.os.Handler.dispatchMessage(Handler.java:98) 
    at android.os.Looper.loop(Looper.java:156) 
    at android.app.ActivityThread.main(ActivityThread.java:6517) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832) 
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
    at com.example.userdetails.MainActivity.isDetailsEmpty(MainActivity.java:64)
    at com.example.userdetails.EnterDetails.onClickSave(EnterDetails.java:20)
    at java.lang.reflect.Method.invoke(Native Method) 
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385) 
    at android.view.View.performClick(View.java:5646) 
    at android.view.View$PerformClick.run(View.java:22473) 
    at android.os.Handler.handleCallback(Handler.java:761) 
    at android.os.Handler.dispatchMessage(Handler.java:98) 
    at android.os.Looper.loop(Looper.java:156) 
    at android.app.ActivityThread.main(ActivityThread.java:6517) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832) 
How to fix this? I have already extended EnterDetails to MainActivity.
Similar Question : What is a NullPointerException, and how do I fix it?
