2011-06-09 60 views
15

我無法弄清楚如何更改按鈕的文本和操作。我想要做的是有一個帶有文字「播放」的按鈕,點擊時它會播放歌曲並將文本改爲「暫停」。那麼當你再次點擊它時,它會暫停歌曲並將文本改爲「播放」。更改按鈕文本和操作 - android開發

我知道如何使用媒體播放器(編碼),只是不知道如何代碼的按鈕方式:

到目前爲止我有:

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

回答

23

您可以使用setTag。所以,你的代碼將是什麼樣子,

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

關於setTag

+0

非常感謝gopai!我有一種感覺,它需要一個if語句而不是setTag。再次感謝! – Splitusa 2011-06-09 18:29:10

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

我的事你有想法。雖然,我不確定MediaPlayer狀態。

+0

我肯定上心。謝謝你的幫助! – Splitusa 2011-06-09 18:29:41