2011-12-04 161 views
1

因此,我正在製作Android遊戲,基本上涉及在屏幕上向左和向右移動的飛船(鎖定在縱向模式),該遊戲試圖躲避從屏幕頂部飛過的物體。我有一個類GraphicsView(它擴展視圖),處理所有的繪圖和whatnot。我試圖在按鈕上顯示兩個按鈕,一個將船舶向左移動,另一個將船舶向右移動。我有這個佈滿整個代碼:如何在屏幕上顯示按鈕?

Button mLeft; 

mLeft = new Button (context); 

mLeft.setX (0); 
mLeft.setY (mDisplay.getHeight() - 64); 
mLeft.setHeight (64); 
mLeft.setWidth (64); 
mLeft.setBackgroundColor (80000000); 
mLeft.setText ("<"); 

每當我嘗試調用任何上述MLEFT這些方法,我的程序崩潰。我已經嘗試將所有這些內容評論出來,然後逐個添加它們以查看它們中的任何一個是否不會崩潰,但是其中的一個是否會崩潰。我能夠在沒有程序崩潰的情況下執行mLeft.draw(canvas),但屏幕上沒有任何內容顯示。

對此的任何幫助將不勝感激,謝謝。

回答

0

您是否添加了mLeft.setOnClickListener()。另外,對於onDraw(),您是否在方法的末尾添加了invalidate()

+0

我剛剛在mleft = new Button(context)之後添加了mLeft.setOnClickListener(this),但它仍然崩潰。我的onDraw方法的底部有一個invalidate。 –

+0

您需要讓您的類實現OnClickListener接口,並且必須重寫onClick方法,否則您可以執行以下操作:'mLeft.setOnClickListener(new View.onClickListener {//實現onClick {})'。你還可以顯示onDraw() –

+0

我實現了View.OnClickListener和onClick(View視圖)方法。 –

0

可能是因爲setText(「<」)。嘗試改變它到別的東西。

+0

我試過註釋掉那一行。他們每個人都會導致它崩潰。 –

+0

而LogCat總是說'找不到方法android.widget.Button。setX,從方法edu.pacificu.cs.Views.GraphicsView引用。 '或者先調用哪個方法,而不是setX。 –