我想在我的Android应用中显示每个国家/地区的名称和相应的标志。 国家/地区名称存储在Sqlite数据库中,国家/地区标志位于可绘制文件夹中。 如何加载具有相应国家/地区名称的国家/地区标志?
答案 0 :(得分:0)
根据drawables
为country name or code
命名并使用资源的getIdentifier(...)
方法
此处doc。
例如,
int drawableId= getResources().getIdentifier("country_name", "drawable", this.getPackageName());
此处传递从database
收到的国家名称 ...
然后,您可以Imageview
或setImageResource(..)
setDrawable(..)
答案 1 :(得分:0)
使用getIdentifier注意:"不鼓励使用此功能。通过标识符检索资源比使用名称"。
更有效我认为另一种方法是将您的资源存储为哈希映射,密钥是您的"国家/地区名称"或"国家代码"并且该值链接到您的图像ID(R.drawable.xxx)。
或者您也可以将此图片ID存储在表格中。
希望对你有所帮助!
答案 2 :(得分:0)
如何使用xml而不是sqlite?
<array name="flags">
<item>@drawable/flag_1</item>
<item>@drawable/flag_2</item>
<item>@drawable/flag_3</item>
</array>
并在java文件中:
TypedArray flags = getResources().obtainTypedArray(R.array.flags);
int flag = flags.getResourceId(flag_item, 0);
你可以从你的sqlite id列中获取flag_item,或者你可以创建另一个数组(字符串数组)并在其中输入国家名称,其顺序与flags数组相同。