2012-11-25 37 views
0

我有一個擴展DemoView類的類(使用afreechart庫顯示一些圖表)。我的問題是我想在該活動中創建一個菜單,只是一個菜單。我正在考慮將該類投射到Activity,這是否合乎邏輯?或者還有其他解決方案嗎? 謝謝你的幫助。將非Activity類拋入Activity

+0

我從來沒有與afreechart工作庫,但如果它已經從繼承層次結構中擴展,則只能將其轉換爲Activity。 –

+0

@GabrielNetto它擴展視圖。所以基本上不可能在該類中構建菜單? – androniennn

回答

3

第一次基本檢查source code for DemoView顯示它繼承了android.view.View,它只是擴展了Object。所以,你應該更好地嘗試你所描述的:

鑄造該類到活動

如果你想添加菜單的支持,也許你應該試試這個架構:

  • 擴展DemoView並添加菜單支持(如DemoViewWithMenu類)
  • 使您的類擴展DemoViewWithMenu而不僅僅是DemoView

但是,如果您只是嘗試從View對象中訪問Activity對象,則可以利用Activity也是Context的事實。然而,並非所有的上下文是活動的,所以以下可以工作,但也可能給你的例外:

Activity a = (Activity)getContext(); //inside method of View class 

參見:

+0

也許你也可以在Google中搜索[Android從View對象獲取活動](https://www.google.pl/search?q=Android+get+Activity+from+View+object)? –

+0

'擴展DemoView並添加菜單支持(如DemoViewWithMenu類)':DemoViewWithMenu擴展了View,因此添加菜單是不可能的。 – androniennn

+0

請不要回答? – androniennn