2011-09-02 153 views
0

嗨我正在使用alertdialog..and当用户点击确定它必须重新启动相同的活动(游戏) ,当他点击否,它必须进入主菜单..但当我点击确定..2活动 正在同时运行,当我时钟没有..并回到这里..对话框仍然存在! 帮助!这是段Alert box ..on and off

AlertDialog.Builder alertbox = new AlertDialog.Builder(this); 
    alertbox.setMessage("oops! wrong answer! wanna play again?"); 
    alertbox.setPositiveButton("Yea sure!", 
      new DialogInterface.OnClickListener() { 
            Intent game = new Intent("nik.trivia.GAME"); 
        startActivity(game); 
        finish(); 
}); 





alertbox.setNegativeButton("Nope! take me to the main menu", 
      new DialogInterface.OnClickListener() { 

       public void onClick(DialogInterface arg0, int arg1) { 
        Intent menu = new Intent("nik.trivia.MENU"); 
        startActivity(menu); 
        finish(); 


       } 
      }); 

回答

1

您需要调用当用户点击一个按钮后,您的AlertDialog上的dismiss()

编辑:只需将下面这行代码:

arg0.dismiss(); 

onClick方法内。

+0

alertbox.dismiss()它告诉它是一个无效的方法 – Nikhil

+0

你可以在上面的代码中显示更改吗? – Nikhil

+0

现在一切正常工作..但仍然对话不会消失,当我从菜单调用相同的意图..这怎么可能?我该怎么办? – Nikhil

0

为了开始仅此活动,您必须设置该标志为singleTask并获得在onNewIntent()方法意图的一个实例。

编辑:

集singleTask如为了不具有相同的活性的许多实例,并添加到您的活动清单文件中的活动的标志:

@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 
    setIntent(intent); 
    // Do here whatver you want. This method is similar to the onCreate() method. 
} 
+0

你能解释与code..sorry我是新手 – Nikhil

+0

我应该这样做与否定警报?我是否应该启动菜单意图,关闭对话框并完成活动?你可以在我的代码中显示吗? – Nikhil

0
你的情况

您可以添加: alertbox.dismiss()

,当你调用finish()这是对整个活动不只是对话框

编辑:

public void onClick(DialogInterface arg0, int arg1) { 
       Intent menu = new Intent("nik.trivia.MENU"); 
       startActivity(menu); 

       arg0.dismiss(); 
       finish(); 

或者你可以正当申报alertbox保护:

protected AlertDialog alertDialog 

and the ny ou将能够从任何地方呼吁dismis它

+0

alertbox.dismiss()它告诉它作为一个无效的方法 – Nikhil

+0

当我点击setNegativeButton,但是当我从菜单中选择这个活动,它恢复了以前的状态 – Nikhil

+0

现在一切正常工作罚款..但仍然对话不是当我打电话给同一个意图时就会离开吗?这怎么可能?我该怎么办? – Nikhil