user3841086
user3841086

Reputation: 31

Launch intent with some sound file

I am making an Android application containing more than 60 buttons. Each button responds to an Activity. Each Activity contains a sound file sourced from a raw file, a TextView and an image. Is there any way that I can use Intent parameters for each button?

For example:

Intent myIntent = new Intent(this, NewActivityClassName.class);
myIntent.putExtra("soundfile", "FirstKeyValue");
myIntent.putExtra("image", "SecondKeyValue");
myIntent.putExtra("text", "ThirdKeyValue");
startActivity(myIntent);

Upvotes: 0

Views: 64

Answers (2)

Dharmendra Pratap Singh
Dharmendra Pratap Singh

Reputation: 1342

Sixty button in single layout is not a good design pattern, you must use either grid or List view.

Using List View http://developer.android.com/design/building-blocks/lists.html

Using Grid View http://developer.android.com/guide/topics/ui/layout/gridview.html

As far as the current problem is concerned You can create a generalized Function as given below

public boolean startActivityFoo(String value1,String value2,String value3)
{
Intent myIntent = new Intent(this, NewActivityClassName.class);
myIntent.putExtra("soundfile",value1);
myIntent.putExtra("image",value2);
myIntent.putExtra("text",value3);
startActivity(myIntent);
}

Upvotes: 0

DeepakPanwar
DeepakPanwar

Reputation: 1389

//Make method let suppose

 public void sendMysong(String songname,String imgUrl,String text)
    {
    Intent myIntent = new Intent(this, NewActivityClassName.class);
    myIntent.putExtra("soundfile",songname);
    myIntent.putExtra("image",imgUrl);
    myIntent.putExtra("text",text);
    }

// Now in receiving Activity receive intent data

      Bundle extras = getIntent().getExtras();
            if (extras != null) {

             String fname=extras.get("soundfile");

        int resID=getResources().getIdentifier(fname, "raw", getApplicationContext().getPackageName());

             MediaPlayer mediaPlayer=MediaPlayer.create(this,resID);
            mediaPlayer.start();

            }

Upvotes: 1

Related Questions