2012-04-16 2 views
0
public void correctLetter(String Letter, int pos){ 
    if(letter.equals("a")){ 
      ImageView image = images[pos]; 
      image.setImageResource(R.drawable.a); 
      image.setVisibility(ImageView.VISIBLE); 
    } 

私はこのような方法を得ました。しかし、私は26文字を持っていると、それは多くのifsになるだろう。setImageResources - 文字列を追加したいと思います。何とか可能ですか?

どのように私はそれを変更することができますか?このようなことを試みましたが、setImageResourceにはintが必要でした。 setImageResourceを呼び出しながら

public void correctLetter(String letter, int pos) { 
     char newLetter = letter.toCharArray()[0]; 
     String startS = "R.drawable." + letter; 
     startS += Character.toString(newLetter); 
     ImageView image = images[pos]; 
     image.setImageResource(startS); 
     image.setVisibility(ImageView.VISIBLE); 
} 

答えて

0

以下のコードを参照してください:

int startS = getResources().getIdentifier(letter, "drawable","com.yourpackage.name"); 
+0

私は私はあなたを愛していると思います!どうもありがとう! – sindrem

0

あなたはそれに静的なint型の配列とインデックス内の画像のためのリソースIDを維持することができます()。あなたがこの方法でstartSを初期化することができます

private static final int charImgIds[] = { R.drawable.a, R.drawable.b, ... , R.drawable.z }; 
public void correctLetter(String letter, int pos) { 
    int letterIndex = letter.toCharArray()[0]; 
    ImageView image = images[pos]; 
    image.setImageResource(charImgIds[letterIndex]); 
    image.setVisibility(ImageView.VISIBLE); 
} 
関連する問題