我有这个想法,我无法编码所以我在这里寻求帮助
我有两个活动,第一个: Xml文件:按钮 Java文件:Button的一个点击监听器,用于从res / raw
中使用SoundPool类播放声音效果- 一切都很简单 -
想要做的是创建第二个活动,用户可以从单选按钮组中选择Sound1或Sound2等其他声音效果,而不是播放。
这是我的想法,所以请帮我编码,因为我已经被困2周了,下一步我有0个线索。
SOS =)
答案 0 :(得分:0)
您可以为要播放的音效定义全局变量:
int activeSoundEffectRawId = R.raw.defaultSound;
使用SoundPool的load
方法播放。
要选择要播放的声音,您可以在启动Activity2的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按钮会将所选声音移交给Activity1:
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();
}
});
之后,您可以在Activity1中设置所选声音:
@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");
}
}