2012-02-02 29 views
3

基本的には描画可能なリソースを切り替えたいと思っています。私はIf文ですべてを書きましたが、あまりにも長くて面倒で、間違った手紙を入力すると停止しないため、実行しません。ピクチャ間でケースを切り替える

私がしようとしているのは、ユーザーが手紙を入力した場合、背景が次の手紙に変わる場合です。ユーザーがAと入力すると背景がBに変わるなどです。今はうまくいきますが、間違っているのは、ユーザーが文字Aにあり、ユーザーが誤って文字Pを入力した場合、ユーザーに間違っていると伝えるのではなく、背景がQに切り替わるということです。

私はこのコードをif文ではなくelse文として使っていましたが、If文だけでは私は今変更すると思っていました。誰もこのIf文をどのようにcase文に入れるのか説明できますか?

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


     } 
}); 

    } 
+0

あなたは列挙型は何としても –

+0

を列挙型を使用することができ、それが何をしますか? –

+0

スイッチの場合は文字列を使うことはできません...文字列とcharと混同しないでください。そうすれば、enumはそうすることができます。 look @ the link http://www.javabeat.net/tips/171-how-to-use-enum-in-switch.html –

答えて

2

文がケースを切り替える場合は、変換することができます。これにより

char ch=words.getText().toString().charAt(0)); 

    switch(ch-'A') 
    { 
     case 0: 
      //A; 
      break; 
     case 1: 
      //B; 
      break; 
    ..... 
    } 

を以下の使用あなたの助けをありがとう:

また、あなたが描画可能な配列を持つことができます、スイッチケースを使用する必要はありません:

int[] arr=new int[]{R.id.drawable_A, .......}; 

その後、色を設定する。これは、

char current = words.getText().toString().charAt(0)); 
char next = ((ch-'A') + 1) % 26 + 'A'; 
gestureViewer.setBackgroundResource(R.drawable.getLetter(next)); 

より良い方法かもしれません

char ch=words.getText().toString().charAt(0)); 
int index=ch-'A'; 
view.setBackgroundResource(index); 
+0

int []配列のチュートリアルはどこから入手できますか?今私はスイッチのケース(char)を使用するつもりですが、私はもう一度配列を理解したいと思います。ありがとうalot –

+0

あなたは何について泣いているか分かりません。 – jeet

+0

基本的には、配列を設定する方法についてもっと学びたいと思っています。配列の設定とプログラムへの組み込みの詳細については、 –

1
private void set(i) {    

    switch(i) {  
    case 1: 
     words.getText().toString().equalsIgnoreCase("A")) { 
     gestureViewer.setBackgroundResource(R.drawable.lettersf); 
     break; 
    case 2: 
     words.getText().toString().equalsIgnoreCase("B")) { 
     gestureViewer.setBackgroundResource(R.drawable.lettersf); 
     break; 
     . 
     ....... 
    } 
} 
0

だろう次のアルファベットの[円]次の文字があります。

幸運

関連する問題