I am getting this error on my main activity screen when I start this activity it crashes my app.
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.noidea, PID: 24739 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.noidea/com.noidea.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3760) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3939) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2373) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:213) at android.app.ActivityThread.main(ActivityThread.java:8147) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference at com.noidea.MainActivity.onCreate(MainActivity.java:52) at android.app.Activity.performCreate(Activity.java:8066) at android.app.Activity.performCreate(Activity.java:8054) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1313) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3733) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3939) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2373) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:213) at android.app.ActivityThread.main(ActivityThread.java:8147) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
THIS IS MY MAINACTIVITY CODE. If anyone can find the cause of error, a reply to it will be really appreciated
com.noidea;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
//fetching ids
EditText Fullname_reg = findViewById(R.id.Firstnameid);
EditText Username_reg = findViewById(R.id.Usernameid);
EditText Email_reg = findViewById(R.id.Emailid);
EditText Password_reg = findViewById(R.id.Passwordid);
EditText RePass_reg = findViewById(R.id.repasswordid);
Spinner Month_reg = findViewById(R.id.monthid);
Spinner Date_reg = findViewById(R.id.dayid);
Spinner Year_reg = findViewById(R.id.yearid);
RadioGroup Gender_reg = findViewById(R.id.genderid);
CheckBox Terms_reg = findViewById(R.id.agreementid);
Button Register_reg = findViewById(R.id.reg_butid);
//making String objects for entered data
final String Fullname , Username, Email ,Password, Repassword, Month, Date, Year, Gender;
//fetching entered data
Fullname = Fullname_reg.getText().toString();
Username = Username_reg.getText().toString();
Email= Email_reg.getText().toString();
Password = Password_reg.getText().toString();
Repassword = RePass_reg.getText().toString();
Month = Month_reg.getSelectedItem().toString();
Date = Date_reg.getSelectedItem().toString();
Year = Year_reg.getSelectedItem().toString();
//calling the spinner method
spinner_med();
//fetching ids from the fetch method
//String[] Credentials = fetch();
//Fullname = Credentials[0];
//Username = Credentials[1];
//Email = Credentials[2];
//Password = Credentials[3];
//Repassword = Credentials[4];
//Month = Credentials[5];
//Date = Credentials[6];
//Year = Credentials[7];
//Gender = Credentials[8];
Register_reg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean full_name = Fullname_check(Fullname);
//proceeds to next check if fullname is valid
if (full_name){
boolean username = Username_check(Username);
//proceeds to next check if username is valid
if (username){
boolean email = Email_check(Email);
//proceeds to next check if email is valid
if (email){
boolean password = Password_check(Password);
//proceed to next check if password is valid
if (password){
boolean repassword = Repassword_check(Repassword, Password);
//proceed to next check if repassword is valid
if (repassword) {
Toast Registered = Toast.makeText(MainActivity.this, "Validity check pass", Toast.LENGTH_LONG);
Registered.show();
}
}
}
}
}
}
});
}
public void spinner_med(){
//declaring spinners and array adapters
Spinner spinner_days, spinner_month, spinner_years, spinner_genders;
ArrayAdapter<String> adapter_day, adapter_month, adapter_year, adapter_gender;
//month spinner
spinner_month = findViewById(R.id.monthid);
adapter_month = new ArrayAdapter<>(
this,
R.layout.custom_spinner,
getResources().getStringArray(R.array.Months)
);
adapter_month.setDropDownViewResource(R.layout.custom_spinner_dropdown);
spinner_month.setAdapter(adapter_month);
//days spinner
ArrayList<String> days = new ArrayList<>();
days.add("Day");
for (int d = 1; d <= 31; d++){
String day = String.valueOf(d);
days.add(day);
}
spinner_days = findViewById(R.id.dayid);
adapter_day = new ArrayAdapter<String>(
this,
R.layout.custom_spinner,
days
);
adapter_day.setDropDownViewResource(R.layout.custom_spinner_dropdown);
spinner_days.setAdapter(adapter_day);
//years spinner
ArrayList<String> years = new ArrayList<>();
years.add("Year");
for (int y = 1980; y<=2020; y++){
String year = String.valueOf(y);
years.add(year);
}
spinner_years = findViewById(R.id.yearid);
adapter_year = new ArrayAdapter<String>(
this,
R.layout.custom_spinner,
years
);
adapter_year.setDropDownViewResource(R.layout.custom_spinner_dropdown);
spinner_years.setAdapter(adapter_year);
}
public void back(View v){
Intent back = new Intent(this, lginscreen.class);
startActivity(back);
}
//public String[] fetch(){
//making String objects for entered data
//String Fullname;
//String Username;
//String Email;
//String Password;
//String Repassword;
//String Month;
//String Date;
//String Year;
//RadioButton Gen;
//fetching radio Button data
//int selectedgen = Gender_reg.getCheckedRadioButtonId();
//Gen = (RadioButton) findViewById(selectedgen);
//String Gender = Gen.getText().toString();
//String[] Cred = {Fullname, Username, Email ,Password, Repassword, Month, Date, Year, Gender};
//return Cred;
//}
//fullname check
public boolean Fullname_check(String Fullname){
int verification;
Pattern Fullname_pattern = Pattern.compile("[^a-z] ", Pattern.CASE_INSENSITIVE);
Matcher Fullname_matcher = Fullname_pattern.matcher(Fullname);
boolean checked_fullname = Fullname_matcher.matches();
if (checked_fullname)
return true;
else
return false;
}
//username check
public boolean Username_check(String Username){
Pattern Username_pattern = Pattern.compile("[^a-z0-9_#.-]", Pattern.CASE_INSENSITIVE);
Matcher Username_matcher = Username_pattern.matcher(Username);
boolean checked_username = Username_matcher.matches();
if (checked_username)
return true;
else
return false;
}
//email check
public boolean Email_check(String Email){
String email_regex = "[a-zA-Z0-9._-]+@[a-z]+\\.[a-z]+";
Pattern email_pattern = Pattern.compile(email_regex);
Matcher email_matcher = email_pattern.matcher(Email);
boolean checked_email = email_matcher.matches();
if (checked_email)
return true;
else
return false;
}
//password check
public boolean Password_check(String Password){
Pattern password_pattern = Pattern.compile("[a-zA-Z0-9_.!#-]+"), num_pattern = Pattern.compile("[0-9]");
Matcher password_match = password_pattern.matcher(Password);
boolean checked_password = password_match.matches();
if (checked_password)
return true;
else
return false;
}
//repassword check
public boolean Repassword_check(String Repassword, String Password){
if (Repassword.equals(Password))
return true;
else
return false;
}
}