为了账号安全,请及时绑定邮箱和手机立即绑定

从活动1切换到活动2时,应用崩溃

从活动1切换到活动2时,应用崩溃

开满天机 2021-05-05 13:10:38
在我的应用程序中,有很多活动被称为关卡。一种活动是奖励活动。当我赢得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`?


查看完整回答
反对 回复 2021-05-26
  • 2 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信