2011-11-19 133 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? –