我正在Android Studio中创建一个应用,该应用将允许注册用户预订旅行。对于这种情况,我有2个活动:DepartGermany和DepartGermany2。
在第一个活动中,将创建一个新的Trip节点,其中包含3个属性:city,zip,street。
在第二个活动中,我希望用户将电话号码和名称添加到相同的“旅行” ID。您会如何建议我这样做?
下面是第一个活动的代码,可以正常工作。先感谢您!
public class DepartGermany extends AppCompatActivity {
Spinner spinnerCity;
EditText editTextZIP;
EditText editTextStreet;
Button buttonAdd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_depart_germany);
spinnerCity = (Spinner) findViewById(R.id.selectCountries);
editTextZIP = (EditText) findViewById(R.id.editTextZIP);
editTextStreet = (EditText) findViewById(R.id.editTextStreet);
buttonAdd = (Button) findViewById(R.id.addButton);
String currentUser = FirebaseAuth.getInstance().getCurrentUser().getUid();
databaseTrips = FirebaseDatabase.getInstance().getReference("TripsAll").child(currentUser);
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addTrip();
}
});
}
private void addTrip(){
String city = spinnerCity.getSelectedItem().toString().trim();
String zip = editTextZIP.getText().toString().trim();
String street = editTextStreet.getText().toString().trim();
String id = databaseTrips.push().getKey();
Trips trip = new Trips(
city,
zip,
street
);
databaseTrips.child(id).setValue(trip);
Intent intent = new Intent(DepartRomania.this, DepartGermany2.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
}
最佳答案
您需要知道要向其添加数据的旅程的键/ ID。完成此操作后,使用新属性更新节点就可以了:
HashMap<String, Object> values = new HashMap<>();
values.put("phonenumber", "+1-800-555-6789");
values.put("name", "Name of the trip");
databaseTrips.child(id).updateChildren(values);