I'm trying to wrap my head around Views, Listeners etc. I have an Activity with 2 Buttons: buttonplay and buttonstop. My problem is I can't wrap my head around the Views and Listeners completely enough to generate a working switch statement.
For example, I would LIKE to create a SINGLE Listener and somehow use it to determine which button is clicked. Then somehow use the ID of the button clicked in my switch statement, But everything I find online seems to use SEPARATE listeners for every button and then somehow use the View as the argument to the Switch statement.
I realize the code below is not correct, but am looking for what changes I would need to accomplish the above.
I want to control the MediaPlayer depending on which button is clicked. I have:
Button b1 = (Button) findViewById(R.id.buttonplay);
b1.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
// Perform action on click
switch(v.getId()) {
case R.id.buttonplay:
//Play voicefile
MediaPlayer.create(getBaseContext(), R.raw.voicefile).start();
break;
case R.id.buttonstop:
//Stop MediaPlayer
MediaPlayer.create(getBaseContext(), R.raw.voicefile).stop();
break;
}
}
});
Ultimately I would like the most straighforward way to switch on whatever button is clicked. I believe a big part of my confusion stems from the way onClickListeners and Views are used in this context.
}
Just change the class (I suppose it's the main Activity) to implement View.OnClickListener and on the onClick method put the general onClick actions you want to put:
I took it from this video: http://www.youtube.com/watch?v=rm-hNlTD1H0 . It's good for starters.
Hi its quite simple to make switch between buttons using switch case:-
One mistake what i did was not including "implements OnClickListener" in the main class declaration. This is a sample code to clearly illustrate the use of switch case during on click. The code changes background colour as per the button pressed. Hope this helps.
One way of achieving this is to make your class implement OnClickListener and then add it to your buttons like this:
Example:
For more information see Android Developers > Handling UI Events.
I use Butterknife with switch-case to handle this kind of cases:
But the thing is there is no default case and switch statement falls through
I have found that the simplest way to do this is to set onClick for each button in the xml
and then you can do a switch case like this