2011-01-26 41 views
0

嘿, 所以我在网上搜索了这个高低。 每当有人进行对话时,他们都会在扩展Activity的类上进行对话。 所以我有一个类扩展了SurfaceView,每当我的游戏中的玩家破坏一定数量的敌人时,我需要显示一个对话框。在Android上创建一个扩展SurfaceView类的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):at android.app.Dialog.show(Dialog.java: 241) 01-26 16:10:3​​1.977:ERROR/AndroidRuntime(387):at com.neivin.android.game.SurvivorPanel.updatePhysics(SurvivorPanel.java:215) 01-26 16:10:3​​1.977:ERROR/AndroidRuntime(387):at com.neivin.android.game.TutorialThread.run(TutorialThread.java:32) –

相关问题