kotlin function overloading for android
I am learning Java / Kotlin and tried to write a simple calculator app. Everything works up until the point here I press enter to get my answer. I implemented two display functions numberDisplay
. one that displays the user inputs to a textview and one that displays the answer to the same textview after the user presses enter. However, the answer the doesn't display. If i remove the second display function and stick to just one (the one that takes an array) it works. but it won't work with the second function that takes a string. I just doesn't display for some reason. I know there are probably better ways to do this, but I want to figure out why the overloading won't work.
package com.zzz.yyy.xx
import android.graphics.Color
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import kotlinx.android.synthetic.main.activity_main.*
import kotlin.collections.ArrayList
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
var displayList = arrayListOf<String>()
fun buttEvent(view:View){
val butt = view as Button
var buttID:String = "0"
when(butt.id){
button13.id-> buttID ="C"
button14.id-> buttID ="D"
button15.id-> buttID ="/"
button16.id-> buttID ="8"
button17.id-> buttID ="9"
button18.id-> buttID ="X"
button7.id-> buttID ="7"
button19.id-> buttID ="5"
button20.id-> buttID ="6"
button21.id-> buttID ="-"
button6.id-> buttID ="4"
button22.id-> buttID ="1"
button23.id-> buttID ="2"
button24.id-> buttID ="3"
button25.id-> buttID ="+"
button26.id-> buttID ="0"
button27.id-> buttID ="."
button28.id-> buttID ="="
button29.id-> buttID ="N"
else-> buttID="null"
}
if(buttID == "D"){
displayList.removeAt(displayList.count()-1)
} else if (buttID == "C"){
displayList.clear()
}else if (buttID== "="){
equals(displayList)
}else{
displayList.add(buttID)
}
numberDisplay(displayList)
}
fun equals(xthings:ArrayList<String>){
var operation = ""
var temp= ArrayList<String>()
var indexoperation = 0
var finalnumber= xthings.count()
var answer:String = ""
for (thing in xthings) {
if (thing == "X" || thing == "-" || thing == "+" || thing == "/") {
indexoperation = xthings.indexOf(thing)
operation = thing
}
}
temp= xthings.joinToString("").split(operation) as ArrayList<String>
when(operation){
"X"-> answer= (temp[0].toInt() * temp[1].toInt()).toString()
else-> answer = "null"
}
numberDisplay(answer)
}
fun numberDisplay(arr:ArrayList<String>){
val outputString:String = arr.joinToString("")
showNumbers.text = outputString
}
fun numberDisplay(texts:String){
showNumbers.text = texts
}
}
I am probably missing something obvious, but I can't figure out what
edit:
I made it work by adding a second onclick event. using a new one for the equal button
here is the new code
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
var displayList = arrayListOf<String>()
fun buttEvent(view:View){
val butt = view as Button
var buttID:String = "0"
when(butt.id){
button13.id-> buttID ="C"
button14.id-> buttID ="D"
button15.id-> buttID ="/"
button16.id-> buttID ="8"
button17.id-> buttID ="9"
button18.id-> buttID ="X"
button7.id-> buttID ="7"
button19.id-> buttID ="5"
button20.id-> buttID ="6"
button21.id-> buttID ="-"
button6.id-> buttID ="4"
button22.id-> buttID ="1"
button23.id-> buttID ="2"
button24.id-> buttID ="3"
button25.id-> buttID ="+"
button26.id-> buttID ="0"
button27.id-> buttID ="."
button29.id-> buttID ="N"
else-> buttID="null"
}
if(buttID == "D"){
displayList.removeAt(displayList.count()-1)
} else if (buttID == "C"){
displayList.clear()
}else{
displayList.add(buttID)
}
numberDisplay(displayList)
}
fun buttEqual(view: View){
var operation = ""
var temp= ArrayList<String>()
var indexoperation = 0
var finalnumber= displayList.count()
var answer:String = ""
for (thing in displayList) {
if (thing == "X" || thing == "-" || thing == "+" || thing == "/") {
indexoperation = displayList.indexOf(thing)
operation = thing
}
}
temp= displayList.joinToString("").split(operation) as ArrayList<String>
when(operation){
"X"-> answer= (temp[0].toInt() * temp[1].toInt()).toString()
else-> answer = "null"
}
numberDisplayx(answer)
}
fun numberDisplay(arr:ArrayList<String>){
val outputString:String = arr.joinToString("")
showNumbers.text = outputString
}
fun numberDisplayx(texts:String){
showNumbers.text = texts.toString()
}
}
I still wonder why it did not work the first time
android methods kotlin method-overloading function-overloading
add a comment |
I am learning Java / Kotlin and tried to write a simple calculator app. Everything works up until the point here I press enter to get my answer. I implemented two display functions numberDisplay
. one that displays the user inputs to a textview and one that displays the answer to the same textview after the user presses enter. However, the answer the doesn't display. If i remove the second display function and stick to just one (the one that takes an array) it works. but it won't work with the second function that takes a string. I just doesn't display for some reason. I know there are probably better ways to do this, but I want to figure out why the overloading won't work.
package com.zzz.yyy.xx
import android.graphics.Color
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import kotlinx.android.synthetic.main.activity_main.*
import kotlin.collections.ArrayList
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
var displayList = arrayListOf<String>()
fun buttEvent(view:View){
val butt = view as Button
var buttID:String = "0"
when(butt.id){
button13.id-> buttID ="C"
button14.id-> buttID ="D"
button15.id-> buttID ="/"
button16.id-> buttID ="8"
button17.id-> buttID ="9"
button18.id-> buttID ="X"
button7.id-> buttID ="7"
button19.id-> buttID ="5"
button20.id-> buttID ="6"
button21.id-> buttID ="-"
button6.id-> buttID ="4"
button22.id-> buttID ="1"
button23.id-> buttID ="2"
button24.id-> buttID ="3"
button25.id-> buttID ="+"
button26.id-> buttID ="0"
button27.id-> buttID ="."
button28.id-> buttID ="="
button29.id-> buttID ="N"
else-> buttID="null"
}
if(buttID == "D"){
displayList.removeAt(displayList.count()-1)
} else if (buttID == "C"){
displayList.clear()
}else if (buttID== "="){
equals(displayList)
}else{
displayList.add(buttID)
}
numberDisplay(displayList)
}
fun equals(xthings:ArrayList<String>){
var operation = ""
var temp= ArrayList<String>()
var indexoperation = 0
var finalnumber= xthings.count()
var answer:String = ""
for (thing in xthings) {
if (thing == "X" || thing == "-" || thing == "+" || thing == "/") {
indexoperation = xthings.indexOf(thing)
operation = thing
}
}
temp= xthings.joinToString("").split(operation) as ArrayList<String>
when(operation){
"X"-> answer= (temp[0].toInt() * temp[1].toInt()).toString()
else-> answer = "null"
}
numberDisplay(answer)
}
fun numberDisplay(arr:ArrayList<String>){
val outputString:String = arr.joinToString("")
showNumbers.text = outputString
}
fun numberDisplay(texts:String){
showNumbers.text = texts
}
}
I am probably missing something obvious, but I can't figure out what
edit:
I made it work by adding a second onclick event. using a new one for the equal button
here is the new code
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
var displayList = arrayListOf<String>()
fun buttEvent(view:View){
val butt = view as Button
var buttID:String = "0"
when(butt.id){
button13.id-> buttID ="C"
button14.id-> buttID ="D"
button15.id-> buttID ="/"
button16.id-> buttID ="8"
button17.id-> buttID ="9"
button18.id-> buttID ="X"
button7.id-> buttID ="7"
button19.id-> buttID ="5"
button20.id-> buttID ="6"
button21.id-> buttID ="-"
button6.id-> buttID ="4"
button22.id-> buttID ="1"
button23.id-> buttID ="2"
button24.id-> buttID ="3"
button25.id-> buttID ="+"
button26.id-> buttID ="0"
button27.id-> buttID ="."
button29.id-> buttID ="N"
else-> buttID="null"
}
if(buttID == "D"){
displayList.removeAt(displayList.count()-1)
} else if (buttID == "C"){
displayList.clear()
}else{
displayList.add(buttID)
}
numberDisplay(displayList)
}
fun buttEqual(view: View){
var operation = ""
var temp= ArrayList<String>()
var indexoperation = 0
var finalnumber= displayList.count()
var answer:String = ""
for (thing in displayList) {
if (thing == "X" || thing == "-" || thing == "+" || thing == "/") {
indexoperation = displayList.indexOf(thing)
operation = thing
}
}
temp= displayList.joinToString("").split(operation) as ArrayList<String>
when(operation){
"X"-> answer= (temp[0].toInt() * temp[1].toInt()).toString()
else-> answer = "null"
}
numberDisplayx(answer)
}
fun numberDisplay(arr:ArrayList<String>){
val outputString:String = arr.joinToString("")
showNumbers.text = outputString
}
fun numberDisplayx(texts:String){
showNumbers.text = texts.toString()
}
}
I still wonder why it did not work the first time
android methods kotlin method-overloading function-overloading
add a comment |
I am learning Java / Kotlin and tried to write a simple calculator app. Everything works up until the point here I press enter to get my answer. I implemented two display functions numberDisplay
. one that displays the user inputs to a textview and one that displays the answer to the same textview after the user presses enter. However, the answer the doesn't display. If i remove the second display function and stick to just one (the one that takes an array) it works. but it won't work with the second function that takes a string. I just doesn't display for some reason. I know there are probably better ways to do this, but I want to figure out why the overloading won't work.
package com.zzz.yyy.xx
import android.graphics.Color
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import kotlinx.android.synthetic.main.activity_main.*
import kotlin.collections.ArrayList
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
var displayList = arrayListOf<String>()
fun buttEvent(view:View){
val butt = view as Button
var buttID:String = "0"
when(butt.id){
button13.id-> buttID ="C"
button14.id-> buttID ="D"
button15.id-> buttID ="/"
button16.id-> buttID ="8"
button17.id-> buttID ="9"
button18.id-> buttID ="X"
button7.id-> buttID ="7"
button19.id-> buttID ="5"
button20.id-> buttID ="6"
button21.id-> buttID ="-"
button6.id-> buttID ="4"
button22.id-> buttID ="1"
button23.id-> buttID ="2"
button24.id-> buttID ="3"
button25.id-> buttID ="+"
button26.id-> buttID ="0"
button27.id-> buttID ="."
button28.id-> buttID ="="
button29.id-> buttID ="N"
else-> buttID="null"
}
if(buttID == "D"){
displayList.removeAt(displayList.count()-1)
} else if (buttID == "C"){
displayList.clear()
}else if (buttID== "="){
equals(displayList)
}else{
displayList.add(buttID)
}
numberDisplay(displayList)
}
fun equals(xthings:ArrayList<String>){
var operation = ""
var temp= ArrayList<String>()
var indexoperation = 0
var finalnumber= xthings.count()
var answer:String = ""
for (thing in xthings) {
if (thing == "X" || thing == "-" || thing == "+" || thing == "/") {
indexoperation = xthings.indexOf(thing)
operation = thing
}
}
temp= xthings.joinToString("").split(operation) as ArrayList<String>
when(operation){
"X"-> answer= (temp[0].toInt() * temp[1].toInt()).toString()
else-> answer = "null"
}
numberDisplay(answer)
}
fun numberDisplay(arr:ArrayList<String>){
val outputString:String = arr.joinToString("")
showNumbers.text = outputString
}
fun numberDisplay(texts:String){
showNumbers.text = texts
}
}
I am probably missing something obvious, but I can't figure out what
edit:
I made it work by adding a second onclick event. using a new one for the equal button
here is the new code
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
var displayList = arrayListOf<String>()
fun buttEvent(view:View){
val butt = view as Button
var buttID:String = "0"
when(butt.id){
button13.id-> buttID ="C"
button14.id-> buttID ="D"
button15.id-> buttID ="/"
button16.id-> buttID ="8"
button17.id-> buttID ="9"
button18.id-> buttID ="X"
button7.id-> buttID ="7"
button19.id-> buttID ="5"
button20.id-> buttID ="6"
button21.id-> buttID ="-"
button6.id-> buttID ="4"
button22.id-> buttID ="1"
button23.id-> buttID ="2"
button24.id-> buttID ="3"
button25.id-> buttID ="+"
button26.id-> buttID ="0"
button27.id-> buttID ="."
button29.id-> buttID ="N"
else-> buttID="null"
}
if(buttID == "D"){
displayList.removeAt(displayList.count()-1)
} else if (buttID == "C"){
displayList.clear()
}else{
displayList.add(buttID)
}
numberDisplay(displayList)
}
fun buttEqual(view: View){
var operation = ""
var temp= ArrayList<String>()
var indexoperation = 0
var finalnumber= displayList.count()
var answer:String = ""
for (thing in displayList) {
if (thing == "X" || thing == "-" || thing == "+" || thing == "/") {
indexoperation = displayList.indexOf(thing)
operation = thing
}
}
temp= displayList.joinToString("").split(operation) as ArrayList<String>
when(operation){
"X"-> answer= (temp[0].toInt() * temp[1].toInt()).toString()
else-> answer = "null"
}
numberDisplayx(answer)
}
fun numberDisplay(arr:ArrayList<String>){
val outputString:String = arr.joinToString("")
showNumbers.text = outputString
}
fun numberDisplayx(texts:String){
showNumbers.text = texts.toString()
}
}
I still wonder why it did not work the first time
android methods kotlin method-overloading function-overloading
I am learning Java / Kotlin and tried to write a simple calculator app. Everything works up until the point here I press enter to get my answer. I implemented two display functions numberDisplay
. one that displays the user inputs to a textview and one that displays the answer to the same textview after the user presses enter. However, the answer the doesn't display. If i remove the second display function and stick to just one (the one that takes an array) it works. but it won't work with the second function that takes a string. I just doesn't display for some reason. I know there are probably better ways to do this, but I want to figure out why the overloading won't work.
package com.zzz.yyy.xx
import android.graphics.Color
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import kotlinx.android.synthetic.main.activity_main.*
import kotlin.collections.ArrayList
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
var displayList = arrayListOf<String>()
fun buttEvent(view:View){
val butt = view as Button
var buttID:String = "0"
when(butt.id){
button13.id-> buttID ="C"
button14.id-> buttID ="D"
button15.id-> buttID ="/"
button16.id-> buttID ="8"
button17.id-> buttID ="9"
button18.id-> buttID ="X"
button7.id-> buttID ="7"
button19.id-> buttID ="5"
button20.id-> buttID ="6"
button21.id-> buttID ="-"
button6.id-> buttID ="4"
button22.id-> buttID ="1"
button23.id-> buttID ="2"
button24.id-> buttID ="3"
button25.id-> buttID ="+"
button26.id-> buttID ="0"
button27.id-> buttID ="."
button28.id-> buttID ="="
button29.id-> buttID ="N"
else-> buttID="null"
}
if(buttID == "D"){
displayList.removeAt(displayList.count()-1)
} else if (buttID == "C"){
displayList.clear()
}else if (buttID== "="){
equals(displayList)
}else{
displayList.add(buttID)
}
numberDisplay(displayList)
}
fun equals(xthings:ArrayList<String>){
var operation = ""
var temp= ArrayList<String>()
var indexoperation = 0
var finalnumber= xthings.count()
var answer:String = ""
for (thing in xthings) {
if (thing == "X" || thing == "-" || thing == "+" || thing == "/") {
indexoperation = xthings.indexOf(thing)
operation = thing
}
}
temp= xthings.joinToString("").split(operation) as ArrayList<String>
when(operation){
"X"-> answer= (temp[0].toInt() * temp[1].toInt()).toString()
else-> answer = "null"
}
numberDisplay(answer)
}
fun numberDisplay(arr:ArrayList<String>){
val outputString:String = arr.joinToString("")
showNumbers.text = outputString
}
fun numberDisplay(texts:String){
showNumbers.text = texts
}
}
I am probably missing something obvious, but I can't figure out what
edit:
I made it work by adding a second onclick event. using a new one for the equal button
here is the new code
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
var displayList = arrayListOf<String>()
fun buttEvent(view:View){
val butt = view as Button
var buttID:String = "0"
when(butt.id){
button13.id-> buttID ="C"
button14.id-> buttID ="D"
button15.id-> buttID ="/"
button16.id-> buttID ="8"
button17.id-> buttID ="9"
button18.id-> buttID ="X"
button7.id-> buttID ="7"
button19.id-> buttID ="5"
button20.id-> buttID ="6"
button21.id-> buttID ="-"
button6.id-> buttID ="4"
button22.id-> buttID ="1"
button23.id-> buttID ="2"
button24.id-> buttID ="3"
button25.id-> buttID ="+"
button26.id-> buttID ="0"
button27.id-> buttID ="."
button29.id-> buttID ="N"
else-> buttID="null"
}
if(buttID == "D"){
displayList.removeAt(displayList.count()-1)
} else if (buttID == "C"){
displayList.clear()
}else{
displayList.add(buttID)
}
numberDisplay(displayList)
}
fun buttEqual(view: View){
var operation = ""
var temp= ArrayList<String>()
var indexoperation = 0
var finalnumber= displayList.count()
var answer:String = ""
for (thing in displayList) {
if (thing == "X" || thing == "-" || thing == "+" || thing == "/") {
indexoperation = displayList.indexOf(thing)
operation = thing
}
}
temp= displayList.joinToString("").split(operation) as ArrayList<String>
when(operation){
"X"-> answer= (temp[0].toInt() * temp[1].toInt()).toString()
else-> answer = "null"
}
numberDisplayx(answer)
}
fun numberDisplay(arr:ArrayList<String>){
val outputString:String = arr.joinToString("")
showNumbers.text = outputString
}
fun numberDisplayx(texts:String){
showNumbers.text = texts.toString()
}
}
I still wonder why it did not work the first time
android methods kotlin method-overloading function-overloading
android methods kotlin method-overloading function-overloading
edited Nov 22 at 18:42
asked Nov 22 at 18:15
sourlemonaid
129314
129314
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Try to use function with vararg
:
fun numberDisplay(vararg texts:String) {
...
}
Call it:
var answer:String = ""
numberDisplay(answer)
or
var displayList = arrayListOf<String>()
numberDisplay(*displayList)
that's cool! thank you. I will look into this
– sourlemonaid
Nov 22 at 18:55
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
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%2f53436348%2fkotlin-function-overloading-for-android%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Try to use function with vararg
:
fun numberDisplay(vararg texts:String) {
...
}
Call it:
var answer:String = ""
numberDisplay(answer)
or
var displayList = arrayListOf<String>()
numberDisplay(*displayList)
that's cool! thank you. I will look into this
– sourlemonaid
Nov 22 at 18:55
add a comment |
Try to use function with vararg
:
fun numberDisplay(vararg texts:String) {
...
}
Call it:
var answer:String = ""
numberDisplay(answer)
or
var displayList = arrayListOf<String>()
numberDisplay(*displayList)
that's cool! thank you. I will look into this
– sourlemonaid
Nov 22 at 18:55
add a comment |
Try to use function with vararg
:
fun numberDisplay(vararg texts:String) {
...
}
Call it:
var answer:String = ""
numberDisplay(answer)
or
var displayList = arrayListOf<String>()
numberDisplay(*displayList)
Try to use function with vararg
:
fun numberDisplay(vararg texts:String) {
...
}
Call it:
var answer:String = ""
numberDisplay(answer)
or
var displayList = arrayListOf<String>()
numberDisplay(*displayList)
answered Nov 22 at 18:43
Sergey
1,95621324
1,95621324
that's cool! thank you. I will look into this
– sourlemonaid
Nov 22 at 18:55
add a comment |
that's cool! thank you. I will look into this
– sourlemonaid
Nov 22 at 18:55
that's cool! thank you. I will look into this
– sourlemonaid
Nov 22 at 18:55
that's cool! thank you. I will look into this
– sourlemonaid
Nov 22 at 18:55
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
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%2f53436348%2fkotlin-function-overloading-for-android%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