在Android中扩展SurfaceView的类上创建AlertDialog

在Android中扩展SurfaceView的类上创建AlertDialog,android,dialog,android-alertdialog,surfaceview,Android,Dialog,Android Alertdialog,Surfaceview,哎,, 所以我在互联网上到处搜索这个。 无论何时,有人在类扩展活动中创建对话框。 因此,我有一个类扩展了SurfaceView,每次我的游戏中的玩家摧毁一定数量的敌人时,我都需要显示一个对话框 我该怎么做? 我从网上复制的代码不断出错 这是我的班级:- class SurvivorPanel extends SurfaceView implements SurfaceHolder.Callback 这是我的构造器:- public SurvivorPanel(Context context

哎,, 所以我在互联网上到处搜索这个。 无论何时,有人在类扩展活动中创建对话框。 因此,我有一个类扩展了SurfaceView,每次我的游戏中的玩家摧毁一定数量的敌人时,我都需要显示一个对话框

我该怎么做? 我从网上复制的代码不断出错

这是我的班级:-

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…

只需使用构造函数中接收到的上下文即可

关于你的问题。。。你可以把它分开。除了
对话框.show()
之外,您可以将所有内容都放在构造函数中;然后,您可以在其他地方执行
dialog.show()
dialog.dismise()

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();
}

我把这个放在哪里?我应该把它放在构造函数中吗?我怎么能用另一种方法?嘿,我试过了。但是,每当我试图显示对话框时,就会出现强制关闭错误。。。我的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:ERROR/AndroidRuntime(387):在com.neivin.android.game.TutorialThread.run(TutorialThread.java:32)上,您不能从非UI线程的其他线程执行此操作。尝试使用处理程序或runOnUiThread方法(用谷歌搜索一下)。