2017-03-25 4 views
0

タイトルはそれをすべて表しています。メソッド呼び出しによる整数としてのRGB値の解析

switch (colorChosen) { 
    case "Red": 
     setEverythingColors(255,0,0,colorChosen); 
    case "Brown": 
     setEverythingColors(165,42,42,colorChosen); 
    case "Orange": 
     setEverythingColors(255,165,0,colorChosen); 
    case "Blue": 
     setEverythingColors(0,0,255,colorChosen); 
    case "Green": 
     setEverythingColors(0,128,0,colorChosen); 
    case "Purple": 
     setEverythingColors(128,0,128,colorChosen); 
    case "Pink": 
     setEverythingColors(246,171,205,colorChosen); 
    case "Yellow": 
     setEverythingColors(255,255,0,colorChosen); 
    case "Grey": 
     setEverythingColors(128,128,128,colorChosen); 
} 

とsetEverythingColors方法は、ビルドが成功していると私はエラーや警告なしを取得していないが、いずれの場合、色が設定されていないされているんだと私が引っ張ってる何らかの理由でこの

public void setEverythingColors(int c1, int c2, int c3, String color){ 
    backgroundColor.setBackgroundColor(Color.rgb(c1,c2,c3)); 
    colorTitle.setText(color); 
} 

ですここに私の髪!

どのような場合がありますか?

+0

「backgroundColor」とは何か、つまり何らかのビューがあります。 おそらく背景が見えないように、ビュー全体が別の(子?)ビューによって隠されているレイアウト問題があります。 – GreyBeardedGeek

+0

私はちょうど私の問題があるコードの一部を投稿しました。 backgroundColorは、スイッチの前に定義されたボタンに反映され、次のようになります。backgroundColor =(Button)findViewById(R.id.theColorButton); – Smolikas

答えて

0

私は何が間違っているかを見つけました。

case "Red": 
case "Brown": 
etc.. 

が問題でした。私は整数を参照するのと同じ方法で文字列を参照していました。

文字列であるため、colorChosen=="Red"とは言えません。

switch文をif文に変更し、代わりにcolorChose.equals("Red")を使用して問題を解決しました。

1

switch-caseが動作します。文字列が定数の場合、コードは機能していますが、breakとdefaultは忘れてしまいます。もう一度やり直すことができます:

switch (colorChosen) { 
     case "Red": 
      setEverythingColors(255, 0, 0, colorChosen); 
      break; 
     case "Brown": 
      setEverythingColors(165, 42, 42, colorChosen); 
      break; 
     case "Orange": 
      setEverythingColors(255, 165, 0, colorChosen); 
      break; 
     case "Blue": 
      setEverythingColors(0, 0, 255, colorChosen); 
      break; 
     case "Green": 
      setEverythingColors(0, 128, 0, colorChosen); 
      break; 
     case "Purple": 
      setEverythingColors(128, 0, 128, colorChosen); 
      break; 
     case "Pink": 
      setEverythingColors(246, 171, 205, colorChosen); 
      break; 
     case "Yellow": 
      setEverythingColors(255, 255, 0, colorChosen); 
      break; 
     case "Grey": 
      setEverythingColors(128, 128, 128, colorChosen); 
      break; 
     default: 
      break; 
    } 
関連する問題