将微调器和日期选择器选择的值转换为字符串并保存到 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 获取日期值并将其转换为字符串。
大家好,我有一个酒店预订表,其中有两个日期选择器和三个微调器来收集用户数据(入住、结账、房间、成人,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 获取日期值并将其转换为字符串。