2013-02-27 55 views
0

我在主屏幕上有一個「繼續」和一個「新遊戲」按鈕。當點擊「新遊戲」按鈕下面的代碼運行:設置繼續按鈕以恢復之前的活動

Case:R.id.new_button:  
Intent = new Intent(this, Difficulty.class); 
     startActivity(openDifficulty); 
     break; 

,然後打開「難度」的活動畫面,其中包含了「易」和「硬」按鈕。 當「硬」按鈕被點擊例如「易」或本上運行:

case R.id.easy_button: 
     Intent openEasy = new Intent(this, EasyGameScreen.class); 
     startActivity(openEasy); 
     break; 

case R.id.hard_button: 
     Intent openHard = new Intent(this, HardGameScreen.class); 
     startActivity(openHard); 
     break; 

,然後將用戶帶到相應級別

我怎樣才能獲得「繼續」按鈕來恢復以前的遊戲從完全相同的角度來看呢?

感謝所有幫助

回答

1

你需要在遊戲的狀態保存,按您的遊戲需求,然後檢查是否有保存狀態是有或沒有在你的第一個活動,如果有則表明繼續按鈕,並點擊該按鈕按照保存狀態加載遊戲,並且您已完成

+0

所以我如何保存遊戲的狀態。是不是像super.onCreate(savedInstanceState); – user2111061 2013-02-27 16:58:44

+0

使用sharedprefernces或sqlite數據庫進行持久性存儲 – 2013-02-27 17:01:52

0

看起來您需要使用startActivityForResult();而不是startActivity();。如果您在設置難度後在下一個活動中致電finish();以關閉它,則會發生差異。

  • 如果用startActivityForResult();開始下一個活動,然後 onActivityResult()將調用原Activtiy(即 以前的遊戲),你可以從那裏繼續播放。
  • 當你使用startActivity();,那麼onActivityResult();永遠不會得到 調用。

我希望這有助於。

+0

我試過startActivityForResult();但它給出了一個錯誤,它不適用於參數(意圖) – user2111061 2013-02-27 17:12:38

+0

startActivitForResult(Intent,int)需要一個int'requestCode'以及Intent。這實際上非常簡單並且非常有用。你發送你想要的任何requestCode,並且稍後它會在onActivityResult()中返回給你,這樣你就可以告訴你剛從哪裏得到。 – 2013-02-27 17:38:34