试图动态获取资源ID

时间:2016-06-02 14:24:52

标签: android resources imageview

我正在尝试使用此代码填充imageViews dynamicaly:

inventorySpace[i].setImageResource((getResourceId(testimg, "mipmap", getPackageName())));

public int getResourceId(String pVariableName, String pResourcename, String pPackageName) {
    try {
        return getResources().getIdentifier(pVariableName, pResourcename, pPackageName);
    } catch (Exception e) {
        e.printStackTrace();
        return -1;
    }
}

然而,它不起作用。如果我使用资源名称,它可以正常工作:

inventorySpace[i].setImageResource(R.mipmap.testimg);

我认为错误不在getResourceId()上,因为它适用于我的TextViews,如下所示:

public void initInventory()
{
    String name = "item0";

    for(int i = 1; i < inventorySize; i++)
    {
        inventoryViews[i] = findViewById(getResourceId(name+i, "id", getPackageName()));
        inventorySpace[i] = (ImageView)(inventoryViews[i].findViewById(R.id.imageViewItem));
        itemDescriptions[i] = (TextView)(inventoryViews[i].findViewById(R.id.itemDesc));
    }
}

请您帮我查一下为什么它只在设置图片资源时失败。

0 个答案:

没有答案