Reputation: 31
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
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
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