作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
到目前为止,我没有崩溃。
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);
}
最佳答案
虽然 [@sunil sunny] 已经提到了一个帮助链接,但我还想在这里添加一些方便的解决方案。请记住,在像您这样的情况下,该解决方案的效率会随着可绘制资源数量的增加而降低。意思是,如果没有太多可用的可绘制对象,请执行此操作。
您可以做的是首先将可绘制对象作为 recyclerview 适配器中的全局变量获取:int drawable1 = R.drawable.drawable1,drawable2 = R.drawable.drawable2
...等等
然后在 onBindViewHolder()
中,只需根据从 JSON 响应获取的内容来使用资源。喜欢:
if(logo == 1)
{
logoImageView.setDrawable(drawable1);
}
值得注意的一个优点是您可以轻松更改可绘制对象,而不必更改资源文件和 API 中的名称。意思是,将两者脱钩。
PS:这里写的代码仅供引用。
关于android - 有没有办法用我的 Json 数据设置可绘制文件夹中的图像,该数据包括可绘制文件夹中图像的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57454554/
我是一名优秀的程序员,十分优秀!