2011-01-26 17 views
0

ちょっと、 だから私はこのためにインターネットを高低に探しました。 誰かがダイアログを作成するたびに、Activityを拡張するクラスでそれを行います。 私は、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); 
} 

いくつかのいずれかの方法をここでAlertDialogを作成するために私に助言してください....

答えて

1

だけコンストラクターで受け取ったコンテキストを使用します。

あなたの質問に関して...あなたはそれを分けることができます。コンストラクタに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:3​​1.977:ERROR/AndroidRuntime(387):android.app.Dialog.show(Dialog.java: 241) 01-26 16:10:3​​1.977:エラー/ AndroidRuntime(387):com.neivin.android.game.SurvivorPanel.updatePhysics(SurvivorPanel.java:215) 01-26 16:10:3​​1.977:ERROR/AndroidRuntime(387):com.neivin.android.game.TutorialThread.run(TutorialThread.java:32) –

関連する問題