Я только что создал приложение Hello World с четырьмя EditText и кнопкой. Приложение выдает сбой из-за следующей ошибки: Я получаю исключение с нулевым указателем для события нажатия кнопки.
Класс StudentInformation:
class StudentInformation {
private String name, rollNo, courseName, marks;
StudentInformation(String nameTxt, String rollNoTxt, String courseNameTxt, String marksTxt){
this.name = nameTxt;
this.rollNo = rollNoTxt;
this.courseName = courseNameTxt;
this.marks = marksTxt;
}
StudentInformation(){
this.name = "";
this.rollNo = "";
this.courseName = "";
this.marks = "";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRollNo() {
return rollNo;
}
public void setRollNo(String rollNo) {
this.rollNo = rollNo;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public String getMarks() {
return marks;
}
public void setMarks(String marks) {
this.marks = marks;
}
}
Мой код :
public class MainActivity extends AppCompatActivity {
FirebaseDatabase mDatabase;
DatabaseReference mDatabaseReference;
StudentInformation studentInformation;
EditText name, rollNo, course, marks;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button saveToDatabase = findViewById(R.id.button);
name = findViewById(R.id.nameText);
rollNo = findViewById(R.id.rollNoText);
course = findViewById(R.id.courseNameText);
marks = findViewById(R.id.marksText);
mDatabase = FirebaseDatabase.getInstance();
mDatabaseReference = mDatabase.getReference().child("user");
saveToDatabase.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
studentInformation = new StudentInformation(name.getText().toString(), rollNo.getText().toString(), course.getText().toString(), marks.getText().toString());
mDatabaseReference.setValue(studentInformation);
Toast.makeText(MainActivity.this, "Data saved", Toast.LENGTH_SHORT).show();
// Intent myIntent = new Intent(MainActivity.this, SecondActivity.class);
// startActivity(myIntent);
}
});
}
}
Изменить: Как уже указывалось, я использовал неправильный идентификатор. Это исправлено после использования кнопки R.id. вместо R.id.bottom, но теперь я получаю еще одну нулевую ссылку в строке:
mDatabaseReference = mDatabase.getReference().child("user");
Как и моя предыдущая проблема, и эта также связана с Null Исключение указателя, поэтому я не создавал для этого новый вопрос.
Кто-нибудь может помочь с этим. Я считаю, что если тег «пользователь» отсутствует в Firebase, не следует ли Firebase создавать его самостоятельно?
Точная ошибка:
java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.database.DatabaseReference com.google.firebase.database.FirebaseDatabase.getReference()' on a null object reference
at com.smd.firebasequiz.MainActivity$1.onClick(MainActivity.java:34)
Снимок экрана Firebase: