【问题标题】:setImageResources - I would like to add a string. Possible somehow? [duplicate]setImageResources - 我想添加一个字符串。有可能吗? [复制]
【发布时间】:2012-04-16 19:29:53
【问题描述】:
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 封信时,就会有很多如果。

有人知道我该如何改变吗?我尝试做这样的事情,但 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);
}

【问题讨论】:

    标签: java android


    【解决方案1】:

    你可以通过这种方式初始化startS

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

    【讨论】:

    • 我想我爱你!非常感谢!
    【解决方案2】:

    您可以将图像的资源 ID 保存在静态 int 数组中,并在调用 setImageResource() 时对其进行索引。请参考下面的代码

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

    【讨论】:

      猜你喜欢
      • 2013-10-12
      • 2013-09-04
      • 2022-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多