2011-01-26 4 views
0

안녕하세요, 그래서 이것을 찾기 위해 인터넷을 높게 책정했습니다. 누군가 활동을 확장하는 클래스에서 대화를 할 때마다. 그래서 SurfaceView를 확장하는 클래스를 만들었고 내 게임의 플레이어가 특정 수의 적을 파괴 할 때마다 대화 상자를 표시해야합니다.SurfaceView를 확장하는 클래스에서 Android에서 AlertDialog를 생성하십시오.

어떻게해야합니까? 온라인에서 복사 한 코드에 오류가 계속 발생합니다.

내 클래스입니다 : -

class SurvivorPanel extends SurfaceView implements SurfaceHolder.Callback 

이 내 생성자 : -

public SurvivorPanel(Context context) { // set panel's holder & thread 
    super(context); 
    getHolder().addCallback(this); 
    _thread = new TutorialThread(getHolder(), this); 
    setFocusable(true); 
} 

어떤 사람은 그냥

답변

1

.... 어떻게 여기에 AlertDialog를 생성하는 나에게 알려 주시기 바랍니다 생성자에서받은 컨텍스트를 사용하십시오.

귀하의 질문에 관해서 ... 당신은 그것을 나눌 수 있습니다. 생성자에 dialog.show()을 제외한 모든 것을 넣을 수 있습니다. 당신은 다른 곳 dialog.show()dialog.dismiss()을 실행할 수 있습니다 :이를 배치해야합니까

private AlertDialog dialog; 

public Constructor(Context context){ 
    AlertDialog.Builder builder = new AlertDialog.Builder(context); 
    dialog = builder.setTitle("The title") 
     .setMessage("The content") 
     .create(); 
    dialog.show(); 
} 

public void someWhere(){ 
    dialog.show(); 
    // or when you want to close it: 
    dialog.dismiss(); 
} 
+0

를? 생성자 자체에 넣어야합니까? 어떻게 다른 방법으로 그것을 가질 수 있습니까 ?? –

+0

나는 나의 대답을 편집 할 것이다. – Cristian

+0

이봐, 나는 그 일을 시도했다. 대화 상자를 표시하려고 할 때마다 강제 종료 오류가 발생합니다 ... LogCAT을 사용하면 dialog.show();가있는 행에서 오류가 발생합니다. 그리고 내 스레드에서 (updatePhysics) 문을 포함하는 메서드에서 오류를 제공합니다 01-26 16 : 10 : 31.977 : ERROR/AndroidRuntime (387) : android.app.Dialog.show (Dialog.java : 241) 01-26 16 : 10 : 31.977 : ERROR/AndroidRuntime (387) : com.neivin.android.game.SurvivorPanel.updatePhysics (SurvivorPanel.java:215) 01-26 16 : 10 : 31.977 : 오류/AndroidRuntime (387) : com.neivin.android.game.TutorialThread.run (TutorialThread.java:32) –