猿问

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

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

            }


        }

    });

}


开满天机
浏览 146回答 2
2回答

qq_花开花谢_0

如果您只想从活动1或活动2转到“奖励”活动,则抓取某些内容并将其发送回任一活动。您要做的是startActivityForResult您传递一个ID(常数)以执行对Reward活动的操作,将需要返回的内容打包到Bundle中,然后将ActivtyResult设置为OK并关闭活动。您的应用将返回给Activity1或2,无论谁调用它。在这些活动上,您将重写onActivityResult方法。在此,您将检查结果的来源ID是否是您在startActivityForResult上发送的ID,以及状态是否正常。然后,您就可以对“奖励”活动进行任何设置。奖励活动不需要知道它来自何处,只要可以获取一些数据即可。因此,您以后可以拥有一个调用Reward活动的Activity3,而无需修改Reward活动。在这里说明检查接受的答案。 如何在Android上管理`startActivityForResult`?
随时随地看视频慕课网APP

相关分类

Java
我要回答