我想知道是否可以在没有强制转换的情况下将属性图像资源分配给ImageView
。我知道,如果没有强制转换,相关的课程将是View
而不是ImageView
。然而,当我将来不需要它时,创建变量并花费一条线是很烦人的。
示例:
正确的方式:
ImageView img = (ImageView)findViewById(R.id.img1);
img.setImageResource(idImg);
理想方式:
findViewById(R.id.img1).setImageResource(idImg);
有没有办法做到这一点?
答案 0 :(得分:1)
没有强制转换是不可能的,但你可以这样做以避免变量。
((ImageView)findViewById(R.id.img1)).setImageResource(idImg);
答案 1 :(得分:0)
你可以使用括号来处理你已经铸造的对象:
( (ImageView)findViewById(R.id.img1) ).setImageResource(idImg)
答案 2 :(得分:0)
您也可以使用Class.cast方法:
ImageView.class.cast(findViewById(R.id.img1)).setImageResource(idImg);