Android - OnDateChangedListener - how do you set this?
up vote
52
down vote
favorite
There is an event listener in Android called DatePicker.OnDateChangedListener.
I am trying to set a DatePicker view's on date changed listener as follows:
DatePicker dp = new DatePicker(getContext());
dp.setOnDateChangedListener(this);
//where this is my activity extends DatePicker.OnDateChangedListener
But guess what?
Date picker does not have a method called setOnDateChangedListener.
My question is:
- How then do you set a date changed listener in Android?
- If it is not possible to set a date changed listener, what is the purpose for this event?
Any documentation/tutorials will be very helpful.
add a comment |
up vote
52
down vote
favorite
There is an event listener in Android called DatePicker.OnDateChangedListener.
I am trying to set a DatePicker view's on date changed listener as follows:
DatePicker dp = new DatePicker(getContext());
dp.setOnDateChangedListener(this);
//where this is my activity extends DatePicker.OnDateChangedListener
But guess what?
Date picker does not have a method called setOnDateChangedListener.
My question is:
- How then do you set a date changed listener in Android?
- If it is not possible to set a date changed listener, what is the purpose for this event?
Any documentation/tutorials will be very helpful.
add a comment |
up vote
52
down vote
favorite
up vote
52
down vote
favorite
There is an event listener in Android called DatePicker.OnDateChangedListener.
I am trying to set a DatePicker view's on date changed listener as follows:
DatePicker dp = new DatePicker(getContext());
dp.setOnDateChangedListener(this);
//where this is my activity extends DatePicker.OnDateChangedListener
But guess what?
Date picker does not have a method called setOnDateChangedListener.
My question is:
- How then do you set a date changed listener in Android?
- If it is not possible to set a date changed listener, what is the purpose for this event?
Any documentation/tutorials will be very helpful.
There is an event listener in Android called DatePicker.OnDateChangedListener.
I am trying to set a DatePicker view's on date changed listener as follows:
DatePicker dp = new DatePicker(getContext());
dp.setOnDateChangedListener(this);
//where this is my activity extends DatePicker.OnDateChangedListener
But guess what?
Date picker does not have a method called setOnDateChangedListener.
My question is:
- How then do you set a date changed listener in Android?
- If it is not possible to set a date changed listener, what is the purpose for this event?
Any documentation/tutorials will be very helpful.
edited May 20 '10 at 18:52
Georg Fritzsche
82.5k20170222
82.5k20170222
asked Jan 12 '10 at 18:00
Tawani
6,090187098
6,090187098
add a comment |
add a comment |
5 Answers
5
active
oldest
votes
up vote
100
down vote
accepted
Once you've created your DatePicker, you need to initialise it with the date you want to display at first. That's the point at which you can add your listener.
See DatePicker.init(int, int, int, OnDateChangedListener).
98
The Android API is really something. I wonder who came up with this ridiculous approach
– Tawani
Jan 28 '10 at 14:36
1
It doesn't seem that ridiculous to me, and at least it's in the API docs. Anyway, I imagine the reason is because Android widgets usually have several constructors, for when you wish to control what style and layout attributes it should be created with -- so they've kept to that convention rather than creating numerous constructors with many parameters.
– Christopher Orr
Jan 28 '10 at 17:09
5
It does seem appropriate to have a setOnDateChangedListener() method like is present to set a click listener. I wonder why they make you initialize it to a date when it auto initializes to today for you?
– Ross Hambrick
Aug 2 '11 at 18:00
1
@ChristopherOrr the terrible part here is mainly that there is a TimePicker and a DatePicker, which have completely different interfaces. (Wow, old post.... nm)
– dstibbe
Oct 29 '15 at 21:46
add a comment |
up vote
34
down vote
Best way is
DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker datePicker, int year, int month, int dayOfMonth) {
Log.d("Date", "Year=" + year + " Month=" + (month + 1) + " day=" + dayOfMonth);
}
});
3
Nice example. thanks.
– Udi Reshef
Jan 11 '17 at 14:55
Thanks man perfect solution
– Gowthaman M
Oct 24 at 13:49
add a comment |
up vote
11
down vote
This view is in fact a combination of four views, and they are :
Three Spinners
One CalendarView
As of the OnDateChangeListener, the object you passed in to the init method will be simply passed to the contained CalendarView, and I believe that you know that there is a setOnDateChangeListener method in the good old CalendarView...... ......
In the DatePicker class, there is a method called the getCalendarView, and it is the method you can call if you want to get your hands on the contained CalendarView.
Once you get your hands on the contained CalendarView, then, needlessly to say, you can call its setOnDateChangeListener
3
This is a great workaround for a terrible API. Thanks for this - you just saved my bacon!
– head in the codes
Feb 6 '14 at 18:57
datePicker.getCalendarView().setOnDateChangeListener() totally works! Thanks! Not very intuitive though. Still think the API should have been datePicker.setOnDateChangeListner().
– ONE
Jul 2 '17 at 7:56
add a comment |
up vote
8
down vote
Something like this:
DatePicker myDatePicker = (DatePicker) findViewById(R.id.my_date_picker);
myDatePicker.getCalendarView().setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
Log.d("tag", "finally found the listener, the date is: year " + year + ", month " + month + ", dayOfMonth " + dayOfMonth);
}
});
It gives UnsupportedOperationException: CalendarView does not exists for the DatePicker
– turbandroid
Jan 22 '16 at 17:10
1
Inflate a DatePicker with android:datePickerMode="spinner" and that Listener worked for me. Without any logical explanation...
– user2331454
Apr 26 '16 at 10:13
add a comment |
up vote
3
down vote
Call init() on the DatePicker object.
add a comment |
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
100
down vote
accepted
Once you've created your DatePicker, you need to initialise it with the date you want to display at first. That's the point at which you can add your listener.
See DatePicker.init(int, int, int, OnDateChangedListener).
98
The Android API is really something. I wonder who came up with this ridiculous approach
– Tawani
Jan 28 '10 at 14:36
1
It doesn't seem that ridiculous to me, and at least it's in the API docs. Anyway, I imagine the reason is because Android widgets usually have several constructors, for when you wish to control what style and layout attributes it should be created with -- so they've kept to that convention rather than creating numerous constructors with many parameters.
– Christopher Orr
Jan 28 '10 at 17:09
5
It does seem appropriate to have a setOnDateChangedListener() method like is present to set a click listener. I wonder why they make you initialize it to a date when it auto initializes to today for you?
– Ross Hambrick
Aug 2 '11 at 18:00
1
@ChristopherOrr the terrible part here is mainly that there is a TimePicker and a DatePicker, which have completely different interfaces. (Wow, old post.... nm)
– dstibbe
Oct 29 '15 at 21:46
add a comment |
up vote
100
down vote
accepted
Once you've created your DatePicker, you need to initialise it with the date you want to display at first. That's the point at which you can add your listener.
See DatePicker.init(int, int, int, OnDateChangedListener).
98
The Android API is really something. I wonder who came up with this ridiculous approach
– Tawani
Jan 28 '10 at 14:36
1
It doesn't seem that ridiculous to me, and at least it's in the API docs. Anyway, I imagine the reason is because Android widgets usually have several constructors, for when you wish to control what style and layout attributes it should be created with -- so they've kept to that convention rather than creating numerous constructors with many parameters.
– Christopher Orr
Jan 28 '10 at 17:09
5
It does seem appropriate to have a setOnDateChangedListener() method like is present to set a click listener. I wonder why they make you initialize it to a date when it auto initializes to today for you?
– Ross Hambrick
Aug 2 '11 at 18:00
1
@ChristopherOrr the terrible part here is mainly that there is a TimePicker and a DatePicker, which have completely different interfaces. (Wow, old post.... nm)
– dstibbe
Oct 29 '15 at 21:46
add a comment |
up vote
100
down vote
accepted
up vote
100
down vote
accepted
Once you've created your DatePicker, you need to initialise it with the date you want to display at first. That's the point at which you can add your listener.
See DatePicker.init(int, int, int, OnDateChangedListener).
Once you've created your DatePicker, you need to initialise it with the date you want to display at first. That's the point at which you can add your listener.
See DatePicker.init(int, int, int, OnDateChangedListener).
answered Jan 12 '10 at 18:11
Christopher Orr
93.8k20171175
93.8k20171175
98
The Android API is really something. I wonder who came up with this ridiculous approach
– Tawani
Jan 28 '10 at 14:36
1
It doesn't seem that ridiculous to me, and at least it's in the API docs. Anyway, I imagine the reason is because Android widgets usually have several constructors, for when you wish to control what style and layout attributes it should be created with -- so they've kept to that convention rather than creating numerous constructors with many parameters.
– Christopher Orr
Jan 28 '10 at 17:09
5
It does seem appropriate to have a setOnDateChangedListener() method like is present to set a click listener. I wonder why they make you initialize it to a date when it auto initializes to today for you?
– Ross Hambrick
Aug 2 '11 at 18:00
1
@ChristopherOrr the terrible part here is mainly that there is a TimePicker and a DatePicker, which have completely different interfaces. (Wow, old post.... nm)
– dstibbe
Oct 29 '15 at 21:46
add a comment |
98
The Android API is really something. I wonder who came up with this ridiculous approach
– Tawani
Jan 28 '10 at 14:36
1
It doesn't seem that ridiculous to me, and at least it's in the API docs. Anyway, I imagine the reason is because Android widgets usually have several constructors, for when you wish to control what style and layout attributes it should be created with -- so they've kept to that convention rather than creating numerous constructors with many parameters.
– Christopher Orr
Jan 28 '10 at 17:09
5
It does seem appropriate to have a setOnDateChangedListener() method like is present to set a click listener. I wonder why they make you initialize it to a date when it auto initializes to today for you?
– Ross Hambrick
Aug 2 '11 at 18:00
1
@ChristopherOrr the terrible part here is mainly that there is a TimePicker and a DatePicker, which have completely different interfaces. (Wow, old post.... nm)
– dstibbe
Oct 29 '15 at 21:46
98
98
The Android API is really something. I wonder who came up with this ridiculous approach
– Tawani
Jan 28 '10 at 14:36
The Android API is really something. I wonder who came up with this ridiculous approach
– Tawani
Jan 28 '10 at 14:36
1
1
It doesn't seem that ridiculous to me, and at least it's in the API docs. Anyway, I imagine the reason is because Android widgets usually have several constructors, for when you wish to control what style and layout attributes it should be created with -- so they've kept to that convention rather than creating numerous constructors with many parameters.
– Christopher Orr
Jan 28 '10 at 17:09
It doesn't seem that ridiculous to me, and at least it's in the API docs. Anyway, I imagine the reason is because Android widgets usually have several constructors, for when you wish to control what style and layout attributes it should be created with -- so they've kept to that convention rather than creating numerous constructors with many parameters.
– Christopher Orr
Jan 28 '10 at 17:09
5
5
It does seem appropriate to have a setOnDateChangedListener() method like is present to set a click listener. I wonder why they make you initialize it to a date when it auto initializes to today for you?
– Ross Hambrick
Aug 2 '11 at 18:00
It does seem appropriate to have a setOnDateChangedListener() method like is present to set a click listener. I wonder why they make you initialize it to a date when it auto initializes to today for you?
– Ross Hambrick
Aug 2 '11 at 18:00
1
1
@ChristopherOrr the terrible part here is mainly that there is a TimePicker and a DatePicker, which have completely different interfaces. (Wow, old post.... nm)
– dstibbe
Oct 29 '15 at 21:46
@ChristopherOrr the terrible part here is mainly that there is a TimePicker and a DatePicker, which have completely different interfaces. (Wow, old post.... nm)
– dstibbe
Oct 29 '15 at 21:46
add a comment |
up vote
34
down vote
Best way is
DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker datePicker, int year, int month, int dayOfMonth) {
Log.d("Date", "Year=" + year + " Month=" + (month + 1) + " day=" + dayOfMonth);
}
});
3
Nice example. thanks.
– Udi Reshef
Jan 11 '17 at 14:55
Thanks man perfect solution
– Gowthaman M
Oct 24 at 13:49
add a comment |
up vote
34
down vote
Best way is
DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker datePicker, int year, int month, int dayOfMonth) {
Log.d("Date", "Year=" + year + " Month=" + (month + 1) + " day=" + dayOfMonth);
}
});
3
Nice example. thanks.
– Udi Reshef
Jan 11 '17 at 14:55
Thanks man perfect solution
– Gowthaman M
Oct 24 at 13:49
add a comment |
up vote
34
down vote
up vote
34
down vote
Best way is
DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker datePicker, int year, int month, int dayOfMonth) {
Log.d("Date", "Year=" + year + " Month=" + (month + 1) + " day=" + dayOfMonth);
}
});
Best way is
DatePicker datePicker = (DatePicker) findViewById(R.id.datePicker);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker datePicker, int year, int month, int dayOfMonth) {
Log.d("Date", "Year=" + year + " Month=" + (month + 1) + " day=" + dayOfMonth);
}
});
answered Jan 22 '16 at 17:20
turbandroid
1,7201629
1,7201629
3
Nice example. thanks.
– Udi Reshef
Jan 11 '17 at 14:55
Thanks man perfect solution
– Gowthaman M
Oct 24 at 13:49
add a comment |
3
Nice example. thanks.
– Udi Reshef
Jan 11 '17 at 14:55
Thanks man perfect solution
– Gowthaman M
Oct 24 at 13:49
3
3
Nice example. thanks.
– Udi Reshef
Jan 11 '17 at 14:55
Nice example. thanks.
– Udi Reshef
Jan 11 '17 at 14:55
Thanks man perfect solution
– Gowthaman M
Oct 24 at 13:49
Thanks man perfect solution
– Gowthaman M
Oct 24 at 13:49
add a comment |
up vote
11
down vote
This view is in fact a combination of four views, and they are :
Three Spinners
One CalendarView
As of the OnDateChangeListener, the object you passed in to the init method will be simply passed to the contained CalendarView, and I believe that you know that there is a setOnDateChangeListener method in the good old CalendarView...... ......
In the DatePicker class, there is a method called the getCalendarView, and it is the method you can call if you want to get your hands on the contained CalendarView.
Once you get your hands on the contained CalendarView, then, needlessly to say, you can call its setOnDateChangeListener
3
This is a great workaround for a terrible API. Thanks for this - you just saved my bacon!
– head in the codes
Feb 6 '14 at 18:57
datePicker.getCalendarView().setOnDateChangeListener() totally works! Thanks! Not very intuitive though. Still think the API should have been datePicker.setOnDateChangeListner().
– ONE
Jul 2 '17 at 7:56
add a comment |
up vote
11
down vote
This view is in fact a combination of four views, and they are :
Three Spinners
One CalendarView
As of the OnDateChangeListener, the object you passed in to the init method will be simply passed to the contained CalendarView, and I believe that you know that there is a setOnDateChangeListener method in the good old CalendarView...... ......
In the DatePicker class, there is a method called the getCalendarView, and it is the method you can call if you want to get your hands on the contained CalendarView.
Once you get your hands on the contained CalendarView, then, needlessly to say, you can call its setOnDateChangeListener
3
This is a great workaround for a terrible API. Thanks for this - you just saved my bacon!
– head in the codes
Feb 6 '14 at 18:57
datePicker.getCalendarView().setOnDateChangeListener() totally works! Thanks! Not very intuitive though. Still think the API should have been datePicker.setOnDateChangeListner().
– ONE
Jul 2 '17 at 7:56
add a comment |
up vote
11
down vote
up vote
11
down vote
This view is in fact a combination of four views, and they are :
Three Spinners
One CalendarView
As of the OnDateChangeListener, the object you passed in to the init method will be simply passed to the contained CalendarView, and I believe that you know that there is a setOnDateChangeListener method in the good old CalendarView...... ......
In the DatePicker class, there is a method called the getCalendarView, and it is the method you can call if you want to get your hands on the contained CalendarView.
Once you get your hands on the contained CalendarView, then, needlessly to say, you can call its setOnDateChangeListener
This view is in fact a combination of four views, and they are :
Three Spinners
One CalendarView
As of the OnDateChangeListener, the object you passed in to the init method will be simply passed to the contained CalendarView, and I believe that you know that there is a setOnDateChangeListener method in the good old CalendarView...... ......
In the DatePicker class, there is a method called the getCalendarView, and it is the method you can call if you want to get your hands on the contained CalendarView.
Once you get your hands on the contained CalendarView, then, needlessly to say, you can call its setOnDateChangeListener
answered May 16 '13 at 9:38
user2389347
11112
11112
3
This is a great workaround for a terrible API. Thanks for this - you just saved my bacon!
– head in the codes
Feb 6 '14 at 18:57
datePicker.getCalendarView().setOnDateChangeListener() totally works! Thanks! Not very intuitive though. Still think the API should have been datePicker.setOnDateChangeListner().
– ONE
Jul 2 '17 at 7:56
add a comment |
3
This is a great workaround for a terrible API. Thanks for this - you just saved my bacon!
– head in the codes
Feb 6 '14 at 18:57
datePicker.getCalendarView().setOnDateChangeListener() totally works! Thanks! Not very intuitive though. Still think the API should have been datePicker.setOnDateChangeListner().
– ONE
Jul 2 '17 at 7:56
3
3
This is a great workaround for a terrible API. Thanks for this - you just saved my bacon!
– head in the codes
Feb 6 '14 at 18:57
This is a great workaround for a terrible API. Thanks for this - you just saved my bacon!
– head in the codes
Feb 6 '14 at 18:57
datePicker.getCalendarView().setOnDateChangeListener() totally works! Thanks! Not very intuitive though. Still think the API should have been datePicker.setOnDateChangeListner().
– ONE
Jul 2 '17 at 7:56
datePicker.getCalendarView().setOnDateChangeListener() totally works! Thanks! Not very intuitive though. Still think the API should have been datePicker.setOnDateChangeListner().
– ONE
Jul 2 '17 at 7:56
add a comment |
up vote
8
down vote
Something like this:
DatePicker myDatePicker = (DatePicker) findViewById(R.id.my_date_picker);
myDatePicker.getCalendarView().setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
Log.d("tag", "finally found the listener, the date is: year " + year + ", month " + month + ", dayOfMonth " + dayOfMonth);
}
});
It gives UnsupportedOperationException: CalendarView does not exists for the DatePicker
– turbandroid
Jan 22 '16 at 17:10
1
Inflate a DatePicker with android:datePickerMode="spinner" and that Listener worked for me. Without any logical explanation...
– user2331454
Apr 26 '16 at 10:13
add a comment |
up vote
8
down vote
Something like this:
DatePicker myDatePicker = (DatePicker) findViewById(R.id.my_date_picker);
myDatePicker.getCalendarView().setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
Log.d("tag", "finally found the listener, the date is: year " + year + ", month " + month + ", dayOfMonth " + dayOfMonth);
}
});
It gives UnsupportedOperationException: CalendarView does not exists for the DatePicker
– turbandroid
Jan 22 '16 at 17:10
1
Inflate a DatePicker with android:datePickerMode="spinner" and that Listener worked for me. Without any logical explanation...
– user2331454
Apr 26 '16 at 10:13
add a comment |
up vote
8
down vote
up vote
8
down vote
Something like this:
DatePicker myDatePicker = (DatePicker) findViewById(R.id.my_date_picker);
myDatePicker.getCalendarView().setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
Log.d("tag", "finally found the listener, the date is: year " + year + ", month " + month + ", dayOfMonth " + dayOfMonth);
}
});
Something like this:
DatePicker myDatePicker = (DatePicker) findViewById(R.id.my_date_picker);
myDatePicker.getCalendarView().setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
Log.d("tag", "finally found the listener, the date is: year " + year + ", month " + month + ", dayOfMonth " + dayOfMonth);
}
});
answered Aug 9 '15 at 18:51
Andrew
1,74641928
1,74641928
It gives UnsupportedOperationException: CalendarView does not exists for the DatePicker
– turbandroid
Jan 22 '16 at 17:10
1
Inflate a DatePicker with android:datePickerMode="spinner" and that Listener worked for me. Without any logical explanation...
– user2331454
Apr 26 '16 at 10:13
add a comment |
It gives UnsupportedOperationException: CalendarView does not exists for the DatePicker
– turbandroid
Jan 22 '16 at 17:10
1
Inflate a DatePicker with android:datePickerMode="spinner" and that Listener worked for me. Without any logical explanation...
– user2331454
Apr 26 '16 at 10:13
It gives UnsupportedOperationException: CalendarView does not exists for the DatePicker
– turbandroid
Jan 22 '16 at 17:10
It gives UnsupportedOperationException: CalendarView does not exists for the DatePicker
– turbandroid
Jan 22 '16 at 17:10
1
1
Inflate a DatePicker with android:datePickerMode="spinner" and that Listener worked for me. Without any logical explanation...
– user2331454
Apr 26 '16 at 10:13
Inflate a DatePicker with android:datePickerMode="spinner" and that Listener worked for me. Without any logical explanation...
– user2331454
Apr 26 '16 at 10:13
add a comment |
up vote
3
down vote
Call init() on the DatePicker object.
add a comment |
up vote
3
down vote
Call init() on the DatePicker object.
add a comment |
up vote
3
down vote
up vote
3
down vote
Call init() on the DatePicker object.
Call init() on the DatePicker object.
answered Jan 12 '10 at 18:11
CommonsWare
756k13618441897
756k13618441897
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f2051153%2fandroid-ondatechangedlistener-how-do-you-set-this%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown