您好我正在使用alertdialog ..当用户点击确定时,它必须重新启动相同的激活(GAME) 当他点击否它必须去主菜单..但当我点击确定... 2活动 正在同时运行,当我没有时钟......然后回到这里......对话框仍然存在! 救命!这是片段
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();
}
});
答案 0 :(得分:1)
用户点击按钮后,您需要在dismiss()
上致电AlertDialog
。
编辑:只需放置以下代码:
arg0.dismiss();
在onClick
方法中。
答案 1 :(得分: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.
}
答案 2 :(得分:0)
在您的情况下,您可以添加: alertbox.dismiss()
当你调用finish()时,它不仅仅是对话框
编辑:
public void onClick(DialogInterface arg0, int arg1) {
Intent menu = new Intent("nik.trivia.MENU");
startActivity(menu);
arg0.dismiss();
finish();
或者你可以juste声明alertbox protected:
protected AlertDialog alertDialog
并且你可以从任何地方打电话给dismis