我已经尝试了几个小时,通过一种意图将资源从一个活动传递到另一个活动。

这是我的“来源”活动中的代码:

           Intent myIntent = new Intent(view.getContext(), Activity3.class);

            int res = R.raw.voicefile;

           myIntent = myIntent.putExtra("soundfile", res);

            startActivityForResult(myIntent, 0);


如您所见,我的原始文件夹中有一个名为voicefile的文件,我将res设置为等于它,并有意传递它。 (我假设它是int类型的)

在接收活动中,我有:

    Intent sender=getIntent();
    int file=sender.getExtras().getInt("soundfile");


此时,我希望该文件在目标Activity中等于R.raw.voicefile,并且可以在MediaPlayer调用中像这样使用变量“ file”:

          MediaPlayer.create(getBaseContext(), file).start();


与:

          MediaPlayer.create(getBaseContext(), R.raw.voicefile).start();


我的问题是,每当我单击“源活动”中启动“目标活动”的按钮时,我都会被强制关闭。

您的专家是否发现我的代码有任何明显的错误?

最佳答案

尝试:

int file=sender.getIntExtra("soundfile", 0);


我认为Intent.getExtras()假定您已使用Bundle将您的附加内容映射到Intent中,而您尚未使用。

07-28 03:53