我刚刚发表在Play商店中的游戏,我打算让它看起来更好,更直观,SI我想地雷取代Android的对话框。方法的调用 - onActivityResult VS DialogInterface.OnClickListener()
当用户完成一个级别,我需要我的自定义对话框显示,如果用户点击一些按钮,对话框(这是一个自定义主题,使它看起来像一个对话的活动),必须返回一个整数与setResult(customResult, intent)
然后完成。
的问题是,当我收到这并startActivityForResult(intentCustomDialog, 0)
活动的onActivityResult()
的resultCode为,我将其称为重启级别或启动下一个根据结果自定义方法(用于了解用户点击哪个按钮)。这种方法也应该重新启动天文台,但它什么都不做!!!!!!!
在另一边,当我使用android对话框,我把电话restart()
在onClickListener记时计重新启动成功!?
所以我缺少什么?为什么restart()
调用成功重启了Android对话的onClickListener
,但不记时计,当我把它从onActivityResult()
方法?
将是非常有益的,所以我可以做我自己的对话框实施和使用onActivityResult()
甚至调用自定义onDialogResult()
法分离的自定义对话框活动和正常活动startActivityForResult()
启动。
在此先感谢。
EDIT
在我的游戏类:
...
public static final int RESULT_RESTART = 8;
public static final int RESULT_NEXT = 9;
public static final int RESULT_MENU = 10;
...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (resultCode) {
case RESULT_MENU:
back(null);
break;
case RESULT_NEXT:
nextGrid();
break;
case RESULT_RESTART:
restartGrid();
break;
}
}
restartGrid()方法:
public void restartGrid() {
...
startChrono();
...
}
public void startChrono() {
chrono.setBase(SystemClock.elapsedRealtime());
chrono.start();
}
工作完全从DialogInterface.OnClickListener()
。
你确定'onActivityResult()'叫? – Caner 2012-07-21 13:20:57
是的,我确定,因为玩家着色的视图已成功重设为原始颜色。这就是奇怪的原因,这个机制是完美的,只有天文钟没有没有理由的复位。 – Flawyte 2012-07-21 13:24:36
您可以发布天文台表的代码和'onActivityResult()' – Caner 2012-07-21 13:25:45