Basically I want to switch between the drawable resources, and I cant figure out how I would go about doing it. I wrote it all in an If statement but its too long and messy and its not executing the way I want to because it doesnt stop if they enter the wrong letter.
What I am trying to do is if the user enters a letter, the background will change to the next letter after that for instance, If the user enters A the background will change to B, so on and so on. It does work right now, But what is wrong is that If the user is on the letter A and the user enters the letter P by mistake the background will switch to Q rather than telling the user they are wrong.
I did have this code as an else if rather than just If statements but i just figured I would change it today. Can anyone explain how I would put this If statement into a case statement? Thank you for your help
if (words.getText().toString().equalsIgnoreCase("A")) {
gestureViewer.setBackgroundResource(R.drawable.lettersb);
} else {
onDestroy();
}
if (words.getText().toString().equalsIgnoreCase("B")) {
gestureViewer.setBackgroundResource(R.drawable.lettersc);
} else {
}
if (words.getText().toString().equalsIgnoreCase("C")) {
gestureViewer.setBackgroundResource(R.drawable.lettersd);
} else {
}
if (words.getText().toString().equalsIgnoreCase("D")) {
gestureViewer.setBackgroundResource(R.drawable.letterse);
} else {
}
if
(words.getText().toString().equalsIgnoreCase("E")) {
gestureViewer.setBackgroundResource(R.drawable.lettersf);
} else {
}
if (words.getText().toString().equalsIgnoreCase("F")) {
gestureViewer.setBackgroundResource(R.drawable.lettersg);
} else {
}
if (words.getText().toString().equalsIgnoreCase("G")) {
gestureViewer.setBackgroundResource(R.drawable.lettersh);
}else {
}
if (words.getText().toString().equalsIgnoreCase("H")) {
gestureViewer.setBackgroundResource(R.drawable.lettersi);
}else {
}
if (words.getText().toString().equalsIgnoreCase("I")) {
gestureViewer.setBackgroundResource(R.drawable.lettersj);
} else {
}
if (words.getText().toString().equalsIgnoreCase("J")) {
gestureViewer.setBackgroundResource(R.drawable.lettersk);
}else {
}
if (words.getText().toString().equalsIgnoreCase("K")) {
gestureViewer.setBackgroundResource(R.drawable.lettersl);
}else {
}
if (words.getText().toString().equalsIgnoreCase("L")) {
gestureViewer.setBackgroundResource(R.drawable.lettersm);
}else {
}
if (words.getText().toString().equalsIgnoreCase("M")) {
gestureViewer.setBackgroundResource(R.drawable.lettersn);
}else {
}
if (words.getText().toString().equalsIgnoreCase("N")) {
gestureViewer.setBackgroundResource(R.drawable.letterso);
}else {
}
if (words.getText().toString().equalsIgnoreCase("O")) {
gestureViewer.setBackgroundResource(R.drawable.lettersp);
}else {
}
if (words.getText().toString().equalsIgnoreCase("P")) {
gestureViewer.setBackgroundResource(R.drawable.lettersq);
}else {
}
if (words.getText().toString().equalsIgnoreCase("Q")) {
gestureViewer.setBackgroundResource(R.drawable.lettersr);
} else {
}
if (words.getText().toString().equalsIgnoreCase("R")) {
gestureViewer.setBackgroundResource(R.drawable.letterss);
} else {
}
if (words.getText().toString().equalsIgnoreCase("S")) {
gestureViewer.setBackgroundResource(R.drawable.letterst);
}else {
}
if (words.getText().toString().equalsIgnoreCase("T")) {
gestureViewer.setBackgroundResource(R.drawable.lettersu);
}else {
}
if (words.getText().toString().equalsIgnoreCase("U")) {
gestureViewer.setBackgroundResource(R.drawable.lettersv);
}else {
}
if (words.getText().toString().equalsIgnoreCase("V")) {
gestureViewer.setBackgroundResource(R.drawable.lettersw);
}else {
}
if (words.getText().toString().equalsIgnoreCase("W")) {
gestureViewer.setBackgroundResource(R.drawable.lettersx);
}else {
}
if (words.getText().toString().equalsIgnoreCase("X")) {
gestureViewer.setBackgroundResource(R.drawable.lettersy);
}else {
}
if (words.getText().toString().equalsIgnoreCase("Y")) {
gestureViewer.setBackgroundResource(R.drawable.lettersz);
}else {
}
if (words.getText().toString().equalsIgnoreCase("Z")) {
gestureViewer.setBackgroundResource(R.drawable.lettersa);
} else {
}
}
public void beforeTextChanged(CharSequence s, int start, int count, int after){
}
public void afterTextChanged(Editable s) {
}
});
}
use following
char ch=words.getText().toString().charAt(0));
switch(ch-'A')
{
case 0:
//A;
break;
case 1:
//B;
break;
.....
}
By this you can convert if statements to switch case:
Also you can have drawable array, then you wont need to use switch case also:
int[] arr=new int[]{R.id.drawable_A, .......};
then setting color would be
char ch=words.getText().toString().charAt(0));
int index=ch-'A';
view.setBackgroundResource(index);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With