如何从JSON数组动态地将Image添加到ImageView

Dom*_*irk 4 arrays android drawable android-imageview

我想从存储在JSON文件中的链接向我的iamgeview添加一个图像,如下所示:

{
"parts":[
    {"name": "Bosch Iridium",

        ...
        ...
        ...

        "image": "R.drawable-hdpi.plug_boschi"
    },
Run Code Online (Sandbox Code Playgroud)

现在我拉链接并使用以下代码显示它:

try {

    jObject = new JSONObject(sJSON.substring(sJSON.indexOf('{')));
    JSONArray pluginfo = jObject.getJSONArray("parts");
    JSONObject e = pluginfo.getJSONObject(position);

    String imagefile = e.getString("image");
    Drawable image = getDrawable(imagefile);

    ImageView itemImage = (ImageView) findViewById(R.id.item_image);

    itemImage.setImageDrawable(image);

        } catch (JSONException e) {
        e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我很确定这部分是正确的

ImageView itemImage = (ImageView) findViewById(R.id.item_image);

itemImage.setImageDrawable(image);
Run Code Online (Sandbox Code Playgroud)

但我需要帮助上面的部分,从JSON数组获取链接,以便我可以显示它.

sda*_*bet 10

您需要首先从JSON中包含的字符串中获取资源ID.

String imagefile = e.getString("image");
String resName = imagefile.split("\\.")[2]; // remove the 'R.drawable.' prefix
int resId = getResources().getIdentifier(resName, "drawable", getPackageName());
Drawable image = getResources().getDrawable(resId);
Run Code Online (Sandbox Code Playgroud)