2012-09-09 22 views
0

我現在正在處理我的關卡選擇器活動,並且想要從我的MainGameView中選擇的最終結果,這是由其他活動運行的。我會如何去做這件事?startActivityForResult(),它是如何工作的?

這是香港專業教育學院,因爲當你選擇1級:

 Button test1 = (Button)findViewById(R.id.test1); 
    test1.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      setLevel(1); 
      Intent start = new Intent("nielsen.happy.activities.HAPPYACTIVITY"); 
      startActivityForResult(start, getLevel()); 
      finish(); 
     } 
    }); 

,但我在哪裏何去何從?我如何將這個值放入我的視圖中,以便根據他們選擇的級別更改位圖和其他值?在我的"HappyActivity"(MainGameAcitvity)中是否有需要做的事情來獲得結果? cus現在迴歸0

完美的遊戲設置:菜單 - > levelselector - >遊戲。所以我需要從levelselector得到結果到遊戲中,所以它知道開始的級別。

回答

1

(更新後的糾正響應) 請勿使用startActivityForResult()。

嘗試此活動答:
Intent start = new Intent("nielsen.happy.activities.HAPPYACTIVITY"); start.putExtra("level", getLevel());
startActivity(start);
finish();

然後在活動B,這樣做:
Extras mBundle = getIntent().getExtras();
int level = mBundle.getInt("level");

(原始的,不正確的響應) 讓我們稱之爲活性的,裏面的一個你上面的示例代碼。 讓我們把活動B稱爲HAPPACTIVITY。

活動A使用請求代碼調用startActivityForResult()。 活動B啓動並退出之前,您調用setResult(int code)。

當活動B完成時,A通過onActivityResult()方法返回頂部。

實現onActivityResult()並查看您獲得的屬性。

僅供參考有一個條件,其中setResult(RESULT_OK)或setResult(RESULT_CANCELED)不會觸發onActivityResult()在A(我不記得是什麼情況)。

+0

但我需要設置導致活性的,所以,當活動B開始,並呼籲我的gameView,它知道選擇哪個級別的活性的 –

+0

聽起來像是你要使用的意圖不startActivityForResult。 – Cookster

+0

讓我澄清。在您開始活動B的意圖中,添加另一個名爲'level'的字段並在您的活動B的onCreate()中讀取意圖。 startActvityForResult()適用於A開始B,B做某事,然後B退出並將某些東西傳回給A(有點像反向意圖)。 – Cookster

相關問題