在我的应用程序中,有很多活动被称为关卡。一种活动是奖励活动。当我赢得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
提交
取消