2012-10-11 15 views
4

我一直試圖在這裏按照教程:的Java:Android開發人員:「方法getHolder()是未定義的類型GameView」

http://www.edu4java.com/en/androidgame/androidgame2.html

但遇到了阻礙。出於某種原因,日食不承認getHolder(),並給了我以下錯誤:

的方法getHolder()是未定義的類型GameView

與以下解決方案:

更改爲getHandler (...); 創建方法getHolder()

的代碼幾乎是一樣的教程,但這裏是我反正:

package com.example.killthemall; 

import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.view.SurfaceHolder; 
import android.view.SurfaceHolder.Callback; 
import android.view.SurfaceView; 
import android.view.View; 

public class GameView extends View { 

private Bitmap bmp; 
private SurfaceHolder holder; 

public GameView(Context context) { 
    super(context); 
    holder = getHolder(); 
    holder.addCallback(new Callback() { 

     public void surfaceDestroyed(SurfaceHolder holder) { 

     } 

     public void surfaceCreated(SurfaceHolder holder) { 
       Canvas c = holder.lockCanvas(null); 
       onDraw(c); 
       holder.unlockCanvasAndPost(c); 
     } 

     public void surfaceChanged(SurfaceHolder holder, int format, 
         int width, int height) { 

     } 

}); 


    bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); 
} 

@Override 
protected void onDraw(Canvas canvas) { 
    canvas.drawColor(Color.BLACK); 
    canvas.drawBitmap(bmp, 10, 10, null); 
} 

} 

回答

5

getHolder()SurfaceView的方法,而你擴展View。更改爲:

public class GameView extends SurfaceView { 
+1

啊,有什麼簡單而令人尷尬的錯誤。這一切都解決了。謝謝! – Bob

+1

發現大多數錯誤很簡單;) – Geobits

相關問題