我需要一个扩展视图的类来覆盖onSizeChanged方法,以便跟踪我的一个视图元素的大小。我有另一个管理此视图的类,我希望该类接受我的视图作为视图,而不是作为大小视图。从本质上讲,我想让我覆盖onSizeChanged方法对类(管理类)的用户透明。
当我的管理类接受视图时,我需要将View转换为我的自定义视图类。不幸的是,当我这样做时,我得到了一个classcastexception。
这是我失败的功能。此外,this.root的类型为SizeView
public void setContentView(View view) {
this.root = (SizeView) view;
this.window.setContentView(view);
}
有可能这样做吗?或者,监视我的一个视图变量的onSizeChanged方法的最佳方法是什么?
谢谢!
答案 0 :(得分:0)
确保您传入的变量view
已初始化为SizeView
。有关投射here的更多信息。
在投射之前,您还应该检查view
是否实际上是SizeView
类型。所以使用view instanceof SizeView
然后如果它是真的你做演员。