在我的應用程序中,有很多活動被稱為關卡。一種活動是獎勵活動。當我贏得1級時,獎勵活動將打開。現在我想重播1級。為此,我使用了getExtra()。單擊重播按鈕時,我的應用程序崩潰。Houselevel1.java public void getReward(){ if(count == 3) { Intent intent = new Intent("com.creatives.arfa.revealthesecretsgame.Reward"); intent.putExtra("activity", "level1"); startActivity(intent); }}HouseLevel2.java public void getReward(){ if(count == 3) { Intent intent = new Intent("com.creatives.arfa.revealthesecretsgame.Reward"); intent.putExtra("activity", "level2"); startActivity(intent); }}Reward.java public void replayLevel() { replay = (ImageButton) findViewById(R.id.replay); Intent intent= getIntent(); activity = intent.getStringExtra("activity"); replay.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View paramView) { if(activity.equals("level2")){ Intent intent = new Intent("com.creatives.arfa.revealthesecretsgame.HouseLevel2"); startActivity(intent); } if(activity.equals("level1")){ Intent intent = new Intent("com.creatives.arfa.revealthesecretsgame.Houselevel1"); startActivity(intent); } } });}
2 回答

qq_花開花謝_0
TA貢獻1835條經驗 獲得超7個贊
如果您只想從活動1或活動2轉到“獎勵”活動,則抓取某些內容并將其發送回任一活動。您要做的是startActivityForResult您傳遞一個ID(常數)以執行對Reward活動的操作,將需要返回的內容打包到Bundle中,然后將ActivtyResult設置為OK并關閉活動。您的應用將返回給Activity1或2,無論誰調用它。在這些活動上,您將重寫onActivityResult方法。在此,您將檢查結果的來源ID是否是您在startActivityForResult上發送的ID,以及狀態是否正常。然后,您就可以對“獎勵”活動進行任何設置。獎勵活動不需要知道它來自何處,只要可以獲取一些數據即可。因此,您以后可以擁有一個調用Reward活動的Activity3,而無需修改Reward活動。在這里說明檢查接受的答案。 如何在Android上管理`startActivityForResult`?
添加回答
舉報
0/150
提交
取消