2010-07-28 53 views
0

我的代碼正在工作,所以,但我不明白一件事。 我已經開始了遊戲編程,現在可以運行我的整個SurfaceView等等。我畫了一個背景,這一切工作。不明白我的視圖的構造函數

當我創建這個我跟着一個教程,所以知道我評論我自己的語言。 :) 當我現在開始評論一些事情;我無法擺脫這一點,有人可以告訴我爲什麼我的視圖的構造函數具有Context參數和AttributeSet參數?爲什麼需要這些以及爲什麼需要將localContext值設置爲我的GameView上下文?

遊戲

public class Game extends Activity{ 

@Override 
public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(new GameView(this, null)); 
} 

}

GameView

public GameView(Context localContext, AttributeSet attrSet){ 
    super(localContext, attrSet); 
    context=localContext; 
    InitView(); 
} 

的InitView();只是初始化我創建的每個對象和變量;如果需要這些東西來向我解釋構造函數;我會發布它。

謝謝!

回答

3

上下文帶有視圖用於操作的一堆狀態。這包括配置狀態等信息,以幫助資源系統確定在其他許多資源中使用哪些資源。

當您的視圖從XML佈局中膨脹時,使用AttributeSet。這是在佈局膨脹期間XML屬性如何綁定到視圖屬性。

+0

同上。如果你想看到一些討論這個的android文檔,請查看http://d.android.com/reference/android/view/View.html#View(android.content.Context,android.util.AttributeSet) 。這是當你說'super(localContext,attrSet)'時被調用(最終)的方法' – Hamy 2010-07-29 05:20:02

+0

感謝adamp和Hamy! – Curtain 2010-07-29 09:03:20