【问题标题】:Is there a way to set the image from the drawable folder with my Json data, The data includes the name of the image in the drawable folder有没有办法用我的Json数据从drawable文件夹中设置图像,数据包括drawable文件夹中图像的名称
【发布时间】:2019-08-12 00:30:32
【问题描述】:

到目前为止,我没有崩溃。

String logoImage = JO.getString("logo");

            if (JO.getString("logo") == "able")
            {
                channel.ivLogoPic.setImageResource(R.drawable.able);
            }

问题是,它没有改变图像。 我已经尝试了 .setDrawable ,但也没有用。

            String logoImage = JO.getString("logo");

            if (JO.getString("logo") == "able")
            {
                //int drawable1 = R.drawable.abc;
                channel.ivLogoPic.setDrawable(R.drawable.able);
            }

【问题讨论】:

标签: android mysql android-recyclerview cardview


【解决方案1】:

虽然 [@sunil Sunny] 已经提到了一个帮助链接,但我还想在这里添加一些方便的解决方案。 请记住,在像您这样的情况下,此解决方案的效率将随着可绘制资源数量的增加而降低。意思是,如果要使用的可绘制对象不多,请执行此操作。

您可以首先在 recyclerview 适配器中获取可绘制对象作为全局变量: int drawable1 = R.drawable.drawable1, drawable2 = R.drawable.drawable2 ...等

然后在onBindViewHolder() 内部,根据从 JSON 响应中获得的内容,简单地使用资源。 喜欢:

if(logo == 1)
{
logoImageView.setDrawable(drawable1);
}

需要注意的一个优点是您可以轻松更改可绘制对象,而不必在资源文件和 API 中更改名称。意思是,将两者解耦。
PS:这里写的代码仅供参考。

【讨论】:

    【解决方案2】:

    我在我的 backgroundTask.Java 文件中发现了它

    while (count<jsonArray.length())
            {
                JSONObject JO = jsonArray.getJSONObject(count);
                count++;
                Channel channel = new Channel(JO.getString("name"),JO.getString("logo"));
    
                Channel logoImage = new Channel(JO.getString("logo"));
    
                if (logoImage.equals("axle"))
                {
                    channel.ivLogoPic.setImageResource(R.drawable.axle);
    

    然后我必须在适配器中设置更改

    if(channel.getLogo().equals("axle")){
                holder.ivLogoPic.setImageResource(R.drawable.axle);
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-11
      • 2013-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-10
      • 2014-06-12
      相关资源
      最近更新 更多