2011-11-19 88 views
1

我需要一个扩展视图的类来覆盖onSizeChanged方法,以便跟踪我的一个视图元素的大小。我有另一个管理这个视图的类,我希望这个类接受我的视图作为视图,而不是视图。从本质上讲,我想说明我重写了对类(管理类)的用户透明的onSizeChanged方法。onSizeChanged/Android中的自定义视图类

当我的管理类接受视图时,我需要将该视图转换为我的自定义视图类。不幸的是,当我这样做时,我得到了classcastexception。

这是我失败的功能。此外,这种类型的尺寸SizeView

public void setContentView(View view) { 
    this.root = (SizeView) view; 
    this.window.setContentView(view); 
} 

是否有可能这样做?或者,监视一个视图变量的onSizeChanged方法的最佳方法是什么?

谢谢!

回答

0

确保您传入的变量view已初始化为SizeView。有关铸造here更多信息。

在投射之前,您还应该检查view是否实际上是SizeView。所以使用view instanceof SizeView然后如果它是真的做你的演员。

+0

所以,如果视图已经是一个SizeView它有效地消除了我提到的透明度。有没有办法做到这一点,而不要求我的课程的用户初始化视图作为一个SizeView? –