setImageResources - 我想添加一个字符串。有可能吗?

时间:2012-04-16 19:29:53

标签: java android

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。

任何人都知道我怎么能改变它?我尝试过这样的事情,但是setImageResource仍需要int。

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);
}

2 个答案:

答案 0 :(得分:0)

您可以在调用setImageResource()时将图像的资源ID保存在静态int数组中并将其编入索引。请参阅以下代码

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);
}

答案 1 :(得分:0)

您可以通过以下方式初始化startS

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