0

我有一个包含图像名称列表的数据库列。我想使用 setImageResource 将其放入 imageview 中。在我的另一个应用程序中,我设法做到了这一点,但在这个应用程序中,imageview 根本没有显示任何内容。

String Image1 = db.getImage1Now(RandomIndex);
imageViewDoThis1.setImageResource(getResources().getIdentifier( Image1, "drawable", getPackageName()));

如果我这样做:

imageViewDoThis1.setImageResource(R.drawable.image1);

然后它的工作..帮助!

4

2 回答 2

0

Use this:

imageViewDoThis1.setImageResource(getResources().getIdentifier( "image1", "drawable", getPackageName()));

I think getIdentifier is supposed to take a string as the first parameter.

于 2013-07-24T02:10:48.740 回答
0

所以我遇到了一个与此非常相似的问题。

我的资源中有一堆图像,我希望能够存储哪个图像属于数据库中的每个项目。我最终使用数据库中的项目 ID 作为图像的唯一标识符。id 对应于我的 DbIcons 类中的常量。当我构造我需要的任何对象时,我从该帮助程序类中检索了资源 ID。

当我想检索正确的图像时,我会从数据库中获取 id,然后调用静态方法 getIcon(categoryId)。这将返回 R.id 值,并将其传递给 ImageView。

这是我的代码的片段。为了让它更短,我删除了大部分变量和 switch 语句:

    公共类别(int id)
    {
        这个.id = id;
        这个.name = "";
        这个.icon = null;
        this.iconResourceId = DbIcons.getIcon(id);
        this.plateIconResourceId = DbIcons.getPlateIcon(id);
    }

    公共类 DbIcons
    {
        /* 类别 ID */
        私有最终静态 int CAT_BABY = 1;
        私有最终静态 int CAT_BAKED_GOODS = 2;
        私有最终静态 int CAT_BAKING = 3;

        /* 盘子 ID */
        私人最终静态int PLATE_BABY = 1;
        私人最终静态int PLATE_BAKED_GOODS = 2;
        私人最终静态int PLATE_BAKING = 3;

        公共静态int getIcon(int cat)
        {
            开关(猫)
            {
                案例 CAT_BABY:
                    返回 R.drawable.baby;
                案例 CAT_BAKED_GOODS:
                    返回 R.drawable.bakedgoods;
                案例 CAT_BAKING:
                    返回 R.drawable.baking;
            }

            返回 R.drawable.default;
        }

        公共静态int getPlateIcon(int plateIcon)
        {
            开关 (plateIcon)
            {
                案例 PLATE_BABY:
                    返回 R.drawable.baby_plate;
                案例 PLATE_BAKED_GOODS:
                    返回 R.drawable.bakedgoods_plate;
                案例 PLATE_BAKING:
                    返回 R.drawable.baking_plate;
            }

            返回 R.drawable.default;
        }
    }

我希望这是有道理的并有所帮助。如果你想让我澄清更多,请问。

于 2013-07-24T02:13:35.310 回答