2012-07-20 4 views
1

나는 다음과 같습니다 사용자 정의 서피스 뷰 SurfaceView 있습니다활동에 중첩 된 클래스가있는 경우 사용자 정의 surfaceView를 초기화하는 방법은 무엇입니까?

public class GFXSurface extends Activity implements OnTouchListener 
{ 
    . 
    . 
    GameSurface gameSurfaceView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.game); 
     gameSurfaceView = (GameSurface)findViewById(R.id.svgame); 
     fullscreen(); 
     initialize(); 
    } 
    . 
    . 
    . 
    public class GameSurface extends SurfaceView implements Runnable 
    { 
     . 
     . 
     public GameSurface(Context context) 
     { 
      super(context); 
      ourHolder = getHolder(); 
     } 
     . 
     . 
     . 
    } 
} 

내 질문에 내 XML 레이아웃에서 참조 할 수 어떻게? 내가 XML 레이아웃의 원인을 사용하고

은 내가 ... 내가 여러 가지 방법하지만, 모든 실패를 시도

그 표면보기의 상단에 약간의 일을 추가 할 필요가

이 나던 일 :

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <com.bla.bla.GFXSurface.GameSurface 
    android:id="@+id/svgame" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" /> 
. 
. 
. 
</FrameLayout> 

도움을 주셔서 대단히 감사합니다 !!!!

답변

2

GameSurface 클래스는 정적이어야합니다. 이 클래스의 객체를 생성하려면 외부 클래스 인스턴스가 필요하므로 레이아웃에서 정적이 아닌 중첩 클래스를 사용할 수 없습니다.