2017-06-01 55 views
-2

我有这个想法,我不能代码,所以我在这里寻求帮助在活动中选择一个声音在另一个活动上播放

我有两个活动的第一个: XML文件:按钮 Java文件:点击监听器的按钮来播放来自资源的的Soundpool类的声音效果/生

--all simple--

什么想要做的就是创建第二个活动,其中用户可以从单选按钮组中选择其他声音效果,例如Sound1或Sound2等,以便播放。

这是我的想法,所以请帮我编码,因为2周后我卡住了,我有0个线索,下一步是什么。

SOS =)

回答

0

你可以定义一个全局变量的音效发挥:

int activeSoundEffectRawId = R.raw.defaultSound; 

并与您的Soundpool的load方法播放。

要选择声音播放,你可以添加另一个按钮来启动活性2您的xml文件:

Button btnSelectSound = (Button) findViewById (R.id.button2); 
btnSelectSound.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     startActivityForResult(new Intent(Activity1.this, Activity2.class), 1000); 
    } 
}); 

您用请求代码1000开始的活动结果在这里(这个数字是很重要的肯定会改变)。

在您的活动2中,您需要逻辑来选择您的声音,例如“确定”按钮来保存选择。那OK按钮,将选定的声音移交给活动1:

Button btnOk = (Button) findViewById (R.id.ok); 
btnOk.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Intent returnIntent = new Intent(); 
     returnIntent.putExtra("soundRawId", selectedSoundRawId /* <- replace this with the selected sound, like R.raw.yourSound */); 
     setResult(Activity.RESULT_OK,returnIntent); 
     finish(); 
    } 
}); 

之后,你可以设置在活动1选定的声音:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == 1000 && resultCode == Activity.RESULT_OK) { 
     selectedSoundRawId = data.getIntExtra("soundRawId"); 
    } 
} 
+0

非常感谢你的作品完美;但我需要使用RadioGroup来简化对用户的操作,只需选择声音并返回到Activity1 ..再次感谢您! –

+0

@Claudenix随着ra? – Prexx

+0

谢谢,我想通了..done =) –

相关问题