2012-08-17 47 views
-3

這是我的第一個應用程序,我試圖寫一個簡單的騙子的骰子游戲。如何重新啓動主要活動,同時保留一些數據

我在主要活動類中編寫了所有內容,隨機擲骰子,發送文本框輸入出價和按鈕以進行出價和呼叫。

所以遊戲運行後,我如何獲得它來跟蹤分數並再次運行?

我已經嘗試使用重新啓動按鈕製作另一個活動屏幕,並在遊戲結束後將其放到那裏,以便重新開始主要活動。不過,我可以從屏幕中按回(手機鍵),並在前一場比賽結束時卡住。

此外,我正在嘗試使用一個數組來跟蹤勝利和損失,但不知道如何從活動中來回移動它。

+0

我寧願將gamedata保存到某個數據庫,然後重新設置遊戲組件,而不是重新啓動整個活動。 – 2012-08-17 07:43:48

回答

0

要重新啓動的主要活動,你可以做

finish(); 
      try { 
       Thread.sleep(10000); 
      } catch (InterruptedException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      startActivity(new Intent(getContext(), YourMainActivity.class));// then call again 

,並通過使用喜好或sqlite的保留您的數據

0

那麼你可以只讓持有該數字的全局數組,只是有一個方法運行當用戶點擊一個按鈕或任何你想觸發滾動。一個簡單的方法來告訴你會

<Button 
    android:layout_height="wrap_content" 
    android: layout_width="wrap_content" 
    android:text="Touch Me" 
    android:on click="leRoll" /> 

然後在你的活動,你可以有一個方法叫leRoll,當按鈕「觸摸我」上點擊被觸發。所有保存得分都可以在那裏使用全局數組完成。

0

不能完全確定,如果這是你在找什麼,但:

您可以覆蓋後退按鈕轉到第二個活動的畫面。

public boolean onKeyDown(int keyCode, KeyEvent event) { 
if (keyCode == KeyEvent.KEYCODE_BACK) { 
    Intent intentstart = new Intent(Activity2.this, MainActivity.class); 
    intentstart.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intentstart); 
    return true; 
} 
return super.onKeyDown(keyCode, event);  
} 
0

我建議你跟蹤你在SQLite數據庫中的勝利和損失。這可能聽起來像是矯枉過正,但它非常適合存儲任意數量的重複結構化數據。如果開銷過大,則打開一個文件並在最後添加新的遊戲分數,或將它們存儲在SharedPreferences中的字符串數組中。這三種方法中的任何一種都是存儲簡單的值向量的好選擇,在這種情況下,您事先並不知道可能存在多少值,並且可以從應用程序的任何部分讀取它們。

您應該使用SharedPreference來保存當前的遊戲狀態,以便您的遊戲活動可以在您每次回到遊戲時顯示正確的內容。一旦遊戲結束,請寫下游戲狀態的SharedPreference值,以表示玩家處於遊戲結束時。然後,當活動下一次啓動時,它將知道開始新的遊戲。

相關問題