我的问题:向用户显示列表视图,显示动物列表,根据选择的项目,下一个活动将向用户显示所选动物的图像。
到目前为止,我的方法是传递所选列表项的位置:
intent.putExtra("position_on_list", position)
在下一次活动中获取额外内容。
这是我感到困惑的地方。如何根据所选动物动态显示图片?我尝试过if语句;
if(position == 0){
ImageView icon = (ImageView)view.findViewById(R.id.animalImg)
icon.setImageResource(R.drawable.tiger)
}
但是当我运行应用程序时,这会导致错误。有人指出我正确的方向,我可能会如何正确地执行此操作。
谢谢。
答案 0 :(得分:3)
至于你的错误,没有关于错误的任何细节,它可能是任何东西......
我认为if语句没问题,你可能想用默认语言做一个switch语句:作为替代。
switch (position){
case 0:
break;
default:
break;
}
我个人喜欢的另一个选择是将您的图像放在arrays.xml资源文件中并创建一个TypedArray,它更干净,更友好。
arrays.xml文件看起来像这样
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="animals">
<item>@drawable/tiger</item>
<item>@drawable/bear</item>
<item>@drawable/...</item>
</string-array>
</resources>
你的活动会有这样的东西,没有开关或ifs
TypedArray ar = getResources().obtainTypedArray(R.array.animals)));
ImageView icon = (ImageView)view.findViewById(R.id.animalImg)
icon.setImageResource(ar.getResourceId(position, -1));