Я использую ListView
, чтобы показать данные, хранящиеся в базе данных Firebase, и когда я долго щелкаю по элементу списка, я хочу получить автоматически сгенерированный идентификатор источника элемента списка в Firebase, чтобы иметь возможность обновлять или удалять данные путем получения идентификатора.
patientListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Patient p = patientList.get(position);
return false;
}
});
ОБНОВЛЕНИЕ : я использую это для добавления данных в мою базу данных
try {
String name = mNameEditText.getText().toString().trim();
String phone = mPhoneEditText.getText().toString().trim();
String age = mAgeEditText.getText().toString().trim();
String aptDate = date();
String visitType = radioListener();
String gender = mGenderSpinner.getSelectedItem().toString();
String descCondition = mDescCondEditText.getText().toString().trim();
if (name.isEmpty()) {
mNameEditText.setError("Enter Your Name Please!");
mNameEditText.requestFocus();
} else if (phone.isEmpty()) {
mPhoneEditText.setError("Enter Your Phone");
mPhoneEditText.requestFocus();
} else if (age.isEmpty()) {
mAgeEditText.setError("Enter Your Age");
mAgeEditText.requestFocus();
} else if (aptDate.isEmpty()) {
dateEditText.setError("Please Enter Appointment Date");
dateEditText.requestFocus();
} else {
Patient appointment = new Patient(name, phone, age, descCondition, gender, aptDate, visitType);
mDatabaseRef.push().setValue(appointment);
successAlertDialog();
mNameEditText.setText("");
mPhoneEditText.setText("");
mAgeEditText.setText("");
dateEditText.setText("");
mGenderSpinner.setSelection(0);
mDescCondEditText.setText("");
}
, и это мой пакет класса модуля com.sharhospital;
public class Patient {
private String name;
private String phone;
private String age;
private String describeCond;
private String gender;
private String date;
private String typeOfVisit;
private String docName;
public Patient(String name, String phone, String age, String describeCond, String gender, String date, String typeOfVisit) {
this.name = name;
this.phone = phone;
this.age = age;
this.describeCond = describeCond;
this.gender = gender;
this.date = date;
this.typeOfVisit = typeOfVisit;
}
public Patient(String name, String phone, String age, String describeCond, String gender, String date, String typeOfVisit, String docName) {
this.name = name;
this.phone = phone;
this.age = age;
this.describeCond = describeCond;
this.gender = gender;
this.date = date;
this.typeOfVisit = typeOfVisit;
this.docName = docName;
}
public Patient() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getDescribeCond() {
return describeCond;
}
public void setDescribeCond(String describeCond) {
this.describeCond = describeCond;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getTypeOfVisit() {
return typeOfVisit;
}
public void setTypeOfVisit(String typeOfVisit) {
this.typeOfVisit = typeOfVisit;
}
public String getDocName() {
return docName;
}
public void setDocName(String docName) {
this.docName = docName;
}
}
onItemLongListerner после изменений
patientListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Patient p = patientList.get(position);
String Id = p.getId();
mDatabaseRef.child(Id).removeValue();
return false;
}
});
отправка данных в базу данных
String id = mDatabaseRef.push().getKey();
Patient appointment = new Patient(id,name, phone, age, descCondition, gender, aptDate, visitType);
mDatabaseRef.child(id).setValue(appointment);