2011-06-09 22 views
15

Tengo problemas para descifrar cómo cambiar el texto y la acción de un botón. Lo que quiero hacer es tener un botón con el texto "reproducir" y cuando se haga clic en él reproducirá una canción y cambiará el texto a "pausa". luego, cuando vuelva a hacer clic, se pausará la canción y se cambiará el texto a "reproducir".Cambiar el texto y la acción del botón - android development

Sé cómo utilizar el reproductor de medios (la codificación) y simplemente no saben cómo codificar el botón de esa manera:

hasta ahora tengo:

final Button testButton = (Button) findViewById(R.id.button1); 
testButton.setText("Play"); 
testButton.setOnClickListener(new View.OnClickListener() { 

@Override 
public void onClick (View v) { 
mPlayer.start(); 
testButton.setText("Pause"); 

Respuesta

23

Puede usar setTag. Por lo tanto, el código se verá así,

final Button testButton = (Button) findViewById(R.id.button1); 
testButton.setTag(1); 
testButton.setText("Play"); 
testButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick (View v) { 
     final int status =(Integer) v.getTag(); 
     if(status == 1) { 
      mPlayer.start(); 
      testButton.setText("Pause"); 
      v.setTag(0); //pause 
     } else { 
      testButton.setText("Play"); 
      v.setTag(1); //pause 
     } 
    } 
}); 

Sobre setTag

+0

Muchas gracias gopai! Tenía la sensación de que requeriría una declaración if, pero no un setTag. ¡gracias de nuevo! – Splitusa

3
private bool isPlaying=false; 
final Button testButton = (Button) findViewById(R.id.button1); 
testButton.setText("Play"); 
testButton.setOnClickListener(new View.OnClickListener() { 

@Override 
public void onClick (View v) { 
if(!isPlaying){ 
    mPlayer.start(); 
    testButton.setText("Pause"); 
    isPlaying=true; 
}else{ 
    mPlayer.stop(); 
    testButton.setText("Play"); 
    isPlaying=false; 
} 

me lo tu tienes la idea Sin embargo, no estoy seguro acerca de los estados de MediaPlayer.

+0

definitivamente he tuvo la idea. ¡gracias por tu ayuda! – Splitusa

Cuestiones relacionadas