将微调器和日期选择器选择的值转换为字符串并保存到 firebase

Converting Spinner & Datepickers selected values to string and save to firebase

大家好,我有一个酒店预订表,其中有两个日期选择器和三个微调器来收集用户数据(入住、结账、房间、成人,children)...我试图保存将数据发送到我的 firebase,代码工作正常,但我在数据库中得到了非常奇怪的数据,我一定是在字符串转换中遗漏了一些东西。这是数据库中的记录

成人: "android.support.v7.widget.AppCompatSpinner{e09c..."

签到: "android.widget.DatePicker{14eadf8e V.E..... ......"

结帐: "android.widget.DatePicker{194a02de V.E..... ......"

children: "android.support.v7.widget.AppCompatSpinner{1dba..."

房间: "android.support.v7.widget.AppCompatSpinner{d413..."

我的BookingActivity如下

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_booking_form);
        Firebase.setAndroidContext(this);
        reserve = (Button) findViewById(R.id.reserve);
        spinner1 = (Spinner) findViewById(R.id.spinner1);
        spinner2 = (Spinner) findViewById(R.id.spinner2);
        spinner3 = (Spinner) findViewById(R.id.spinner3);
        datePicker0 = (DatePicker) findViewById(R.id.datePicker0);
        datePicker2 = (DatePicker) findViewById(R.id.datePicker2);






        reserve.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //Creating firebase object
                final Firebase ref = new Firebase("https://ngong-hills.firebaseio.com/");

                //Getting values to store

                String Checkin = datePicker0.toString().trim();
                String Checkout = datePicker2.toString().trim();
                String rooms = spinner1.toString().trim();
                String adults = spinner2.toString().trim();
                String children = spinner3.toString().trim();

                Booking booking = new Booking();
                booking.setadults(adults);
                booking.setchildren(children);
                booking.setrooms(rooms);
                booking.setCheckout(Checkout);
                booking.setCheckin(Checkin);

                Firebase newRef = ref.child("Bookings").push();
                newRef.setValue(booking);


            }
        });

    }

    @Override
    public void onClick(View view) {

        if(view == reserve){
            //open login activity when user taps on the already registered textview
            startActivity(new Intent(this, HomeNav.class));
        }

    }

我不知道我错过了什么 ..

String Checkin = datePicker0.toString().trim();
String Checkout = datePicker2.toString().trim();
String rooms = spinner1.toString().trim();
String adults = spinner2.toString().trim();
String children = spinner3.toString().trim();

您实际上是通过 toString 方法获取整个视图元素的 (Spinner, DatePicker) 字符串表示形式。与其尝试这样做,不如像这样获取 Spinner 值,

String rooms = spinner1.getSelectedItem().toString();

对其余的微调器执行相同的操作。 Here is how 您可以从 DatePicker 获取日期值并将其转换为字符串。