有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Android(Java)中使用字符串作为图形元素的ID

我试图在Android项目中使用字符串作为ImageView的ID。 此代码对我无效:

    for(int l=1; l<=9; l++){
        String NineElements = "imageView" + l;
        ImageView oneOfNineElements = (ImageView) findViewById(R.id.NineElements);
        oneOfNineElements.setImageDrawable(getResources().getDrawable(R.drawable.myimage));
    }

共 (2) 个答案

  1. # 1 楼答案

    请尝试以下代码。它应该有用

    for(int l = 1; l <= 9; l++)
        {
            String elementID = "imageView" + l;
            int resID = getResources().getIdentifier(elementID, "id", getApplicationContext().getPackageName());
            ImageView oneOfNineElements = (ImageView) findViewById(resID);
            oneOfNineElements.setImageDrawable(getResources().getDrawable(R.drawable.myimage));
        }
    
  2. # 2 楼答案

    Android中的id是在构建过程中生成的,如果你想在循环中使用它们,你可以将它们保存在数组中并循环使用

    int[] images = {R.id.image1,R.id.image2,....
    

    然后

    for(int l=1; l<=9; l++){
    
        ImageView oneOfNineElements = (ImageView)findViewById(images[l]);
        oneOfNineElements.setImageDrawable(getResources().getDrawable(R.drawable.myimage));
    }