如何在Android中通过String从ImageRessource获取int值

问题描述

我想创建一个需要ImageResource作为构造函数中int值的MenuItem。但我想为此使用一个字符串。所以我有以下代码: menuList = new ArrayList();

    String drinkTypeToBeDisplayed = GenericDrinks_FragmentArgs.fromBundle(getArguments()).getDrinkType();
    ArrayList<String> availableDrinks = AvailabilityChecker.getAvailableDrinks(drinkTypeToBeDisplayed);

    for(int a=0; a<availableDrinks.size();a++) {
        int resourceId = context.getResources().getIdentifier(availableDrinks.get(a));
        menuList.add(new MenuItem(resourceId));
    }

但是由于变量'context',我得到了一个错误。我基本上所做的就是使用类似

的语句
menuList.add(new MenuItem(R.drawable.test_dish_1));

现在,我在“ R.drawable”之后有一个具有正确名称的字符串数组列表。因此,基本上,新菜单项应具有名称"R.drawable." + availableDrinks.get(a) availableDrinks.get(a)提供了一个String,但我需要转换表达式““ R.drawable”。 + availableDrinks.get(a)转换为int,因为MenuItem的构造函数需要相应ImageRessouce的int。

有人知道我该怎么做吗?我会很感激每个评论。

没人能帮我吗?我只想使用String来访问Android中的一些可绘制资源。

更新:我尝试了以下代码:

int resId = getResources().getIdentifier( "R.drawable.picture_" +  availableDrinks.get(a),null,null);

不幸的是,尽管ArrayList中的名称有效,但getIdentifier方法始终返回int值0(我用Logcat进行了检查)。也许参数对于getIdentifier方法是错误的? 我希望我明确要做什么(如果不问我的话)。我有可以通过以下方式访问的imageResource文件:

  • R.drawable.picture_cola
  • R.drawable.picture_orangejuice
  • R.drawable.picture_lemonade等

我想为MenuItem的构造函数生成此参数“ R.drawable.picture_cola”,使其具有"menuList.add(new MenuItem(R.drawable.picture_cola));" 但是,应使用“ ArrayList availableDrinks”的条目“自动”创建参数:

  • 可乐
  • 橙汁
  • 柠檬水

我希望这可以澄清我的问题,以便您可以对此提出一些意见。我非常感谢您的每条评论。

没人知道我该怎么做吗?还是您介意告诉我另一种方法,如何以编程方式访问可绘制资源文件。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...