如何在不投射的情况下分配属性

时间:2014-08-04 21:07:34

标签: java android view casting imageview

我想知道是否可以在没有强制转换的情况下将属性图像资源分配给ImageView。我知道,如果没有强制转换,相关的课程将是View而不是ImageView。然而,当我将来不需要它时,创建变量并花费一条线是很烦人的。

示例:

正确的方式:

ImageView img = (ImageView)findViewById(R.id.img1);
img.setImageResource(idImg);

理想方式:

findViewById(R.id.img1).setImageResource(idImg);

有没有办法做到这一点?

3 个答案:

答案 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);