Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Switch case between pictures

Tags:

java

android

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) {


         } 
});

    }
like image 404
baron dune Avatar asked Mar 26 '26 10:03

baron dune


1 Answers

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);
like image 194
jeet Avatar answered Mar 28 '26 00:03

jeet



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!