我已经尝试了几个小时,通过一种意图将资源从一个活动传递到另一个活动。
这是我的“来源”活动中的代码:
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
中,而您尚未使用。