我正在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);

10-02 06:11
查看更多