猿问

按名称获取可绘制图像

我有一个模型,它有一个特定的国家标志:


public int getCountryFlag() {

    return countryFlag;

}


public void setCountryFlag(int countryFlag) {

    this.countryFlag = countryFlag;

}

我正在从 API 获取数据。API 有一个值国家代码,这可能是这样的:"country":"de","created_at":"2018-08-08 09:17:43","updated_at":"2018-08-08 09:17:43"


我将标志命名为国家/地区代码:


de

se

us

....

如何获取图像的确切资源 ID 以将其与模型相关联?我正在使用 RecyclerView。


我试过类似的东西:


int resID = getResources().getIdentifier(object.getString("country"), "drawable",  getPackageName());

model.setCountryFlag(R.drawable.sy);

虽然那没有用!


胡说叔叔
浏览 104回答 2
2回答

MM们

如果您确定api字符串的格式,请执行以下操作:String country = api.trim().split(",")[0].split(":")[1].replaceAll("\"", "");或者String country = api.trim().substring(11, 13);然后:int resID = getResources().getIdentifier(country, "drawable",  getPackageName()); model.setCountryFlag(resID);

慕雪6442864

您可以通过资源 ID 名称获取标志int drawableResourceId = this.getResources().getIdentifier("de", "drawable", this.getPackageName());
随时随地看视频慕课网APP

相关分类

Java
我要回答