-2

I have this idea that I couldn't code so I'm here Asking for help

I have two activities the first one : Xml file : Button Java File : a click listener for the Button to play a sound effect with the SoundPool class from res/raw

--all simple--

what want to do is to create a second activity where the user can choose an other sound effects like Sound1 or Sound2 ...etc from a radio button group, to be played instead.

this was my idea, so please help me coding this I'm stuck since 2 weeks and I have 0 clue whats the next step.

SOS =)

Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Claude nix
  • 13
  • 2

1 Answers1

0

You could define a global variable for the sound effect to play:

int activeSoundEffectRawId = R.raw.defaultSound;

And play it with your SoundPool's load method.

To select the sound to play, you could add another button to your xml file that starts Activity2:

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);
    }
});

It's important that you start the activity for result here with the request code 1000 (this number can be changed for sure).

In your Activity 2 you need the logic to select your sound and for example a "OK" button to save the selection. That ok button will hand over the selected sound to 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();
    }
});

After that, you can set the selected sound in 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");
    }
}
Prexx
  • 2,959
  • 5
  • 31
  • 48