我剛剛發表在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