作者:许雅惠嘉文意芝 | 来源:互联网 | 2023-02-10 20:23
对于我的Android应用程序,我正在尝试将多个字符串添加到同一个孩子(Firebase唯一ID),用户将在其中输入不同的布局.我正在使用Hashmap将字符串放入Firebase.我有4-5种不同的布局,用户会遇到并需要填写信息,但是当我将其保存在数据库中时,它总是使用不同的唯一ID,我需要将它们全部放在同一个ID下.
这是我的代码,我创建了一个Parent类,每个布局(其他类)都有一些方法来访问Hashmap.
家长班:
public class FireBaseDataMap {
private HashMap dataMap = new HashMap();
public HashMap fireebaseMap(){
return dataMap;
}
}
第一个活动:我在onClick(视图)方法中放置了需要帮助的箭头.
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
//UI References
private EditText firstName;
private EditText lastName;
private EditText birthPlace;
private EditText etxtBirthdate;
private EditText etxtMissingDate;
private Button saveButton;
private Button cancel_button;
private DatePickerDialog birthdateDatePickerDialog;
private DatePickerDialog missingDatePickerDialog;
private DatabaseReference mDatabase;
private SimpleDateFormat dateFormatter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dateFormatter = new SimpleDateFormat("dd-MM-yyyy", Locale.US);
findViewsById();
setDateTimeField();
saveButton = (Button) findViewById(R.id.saveButton);
cancel_button = (Button) findViewById(R.id.cancel_button);
saveButton.setOnClickListener(this);
cancel_button.setOnClickListener(this);
}
private void findViewsById() {
firstName = (EditText) findViewById(R.id.firstName);
lastName = (EditText) findViewById(R.id.lastName);
birthPlace = (EditText) findViewById(R.id.birthPlace);
etxtBirthdate = (EditText) findViewById(R.id.etxt_birthdate);
etxtBirthdate.setInputType(InputType.TYPE_NULL);
etxtBirthdate.requestFocus();
etxtMissingDate = (EditText) findViewById(R.id.etxt_missingdate);
etxtMissingDate.setInputType(InputType.TYPE_NULL);
etxtMissingDate.requestFocus();
}
@Override
public void onClick(View view) {
if(view == etxtBirthdate) {
birthdateDatePickerDialog.show();
}
if(view == etxtMissingDate){
missingDatePickerDialog.show();
}
if(view == saveButton){
String FirstName = firstName.getText().toString().trim();
String LastName = lastName.getText().toString().trim();
String BirthPlace = birthPlace.getText().toString().trim();
String BirthDate = etxtBirthdate.getText().toString().trim();
String MissingDate = etxtMissingDate.getText().toString().trim();
mDatabase = FirebaseDatabase.getInstance().getReference();
// Here is where im accessing the parent class and need help <------
FireBaseDataMap obj = new FireBaseDataMap();
HashMap dataMap = obj.fireebaseMap();
if(FirstName.isEmpty()) {
FirstName = "n/a";
dataMap.put("firstName", FirstName);
}
else
dataMap.put("firstName", FirstName);
if(LastName.isEmpty()) {
LastName = "n/a";
dataMap.put("lastName", LastName);
}
else
dataMap.put("lastName", LastName);
if(BirthPlace.isEmpty()) {
BirthPlace = "n/a";
dataMap.put("birthPlace", BirthPlace);
}
else
dataMap.put("birthPlace", BirthPlace);
if(BirthDate.isEmpty()) {
BirthDate = "n/a";
dataMap.put("birthDate", BirthDate);
}
else
dataMap.put("birthDate", BirthDate);
if(MissingDate.isEmpty()) {
MissingDate = "n/a";
dataMap.put("missingDate", MissingDate);
}
else
dataMap.put("missingDate", MissingDate);
mDatabase.child("null").push().setValue(dataMap);
}
if(view == cancel_button){
startActivity(new Intent(this, PhysicalAttributes.class));
}
}
}
第二个活动:我只是发布了我需要帮助的方法来进行这个活动所以它看起来不会那么长,但是如果需要全班来理解那么我可以更新它.
public void onClick(View view) {
if (view == saveButton) {
String PersOnAge= personAge.getText().toString().trim();
String PersOnHeight= personHeight.getText().toString().trim();
String PersOnWeight= personWeight.getText().toString().trim();
mDatabase = FirebaseDatabase.getInstance().getReference();
FireBaseDataMap obj = new FireBaseDataMap();
HashMap dataMap = obj.fireebaseMap();
if(PersonAge.isEmpty()){
PersOnAge= "n/a";
dataMap.put("personAge", PersonAge);
}
else
dataMap.put("personAge", PersonAge);
if(PersonHeight.isEmpty()) {
PersOnHeight= "n/a";
dataMap.put("personHeight", PersonHeight);
}
else
dataMap.put("personHeight", PersonHeight);
if(PersonWeight.isEmpty()) {
PersOnWeight= "n/a";
dataMap.put("personWeight", PersonWeight);
}
else
dataMap.put("personWeight", PersonWeight);
mDatabase.child("null").push().setValue(dataMap);
}
if (view == cancel_button) {
}
}
}
我试过看了一遍,尝试了不同的方法使它工作,但没有.任何帮助,将不胜感激.如果需要澄清,那么将尽我所能.
我想到的另一种方式是,如果我可以在每个活动上访问相同的saveButton,那么它是否有效.