[英]Boolean does not returning from true to false
我在列表視圖中播放 mp3 歌曲。 當我單擊隨機播放按鈕時,它的突出顯示並保持色彩鮮艷,這一刻 boolean 成為現實。 然后當我再次單擊隨機播放按鈕時,高光消失了,此時 boolean 應該是假的,隨機播放應該停止播放歌曲。
但不幸的是,boolean 不會從真回到假,它始終保持真。 我不明白為什么,因為我做得很好。 主要目的是當第一首歌曲結束時,它應該開始第二首,然后是第三首......但是由於boolean沒有回到之前的state(假),即使我點擊了隨機播放按鈕,它仍然會繼續播放歌曲。
編輯這是我放視頻以便更容易理解
這是我的代碼:
public class MainActivity extends AppCompatActivity {
ListView lv;
MediaPlayer mediaPlayer;
private boolean isShuffle = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
btnshuffle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if (isShuffle) {
isShuffle = false;
Toast.makeText(getApplicationContext(), "Shuffle is OFF", Toast.LENGTH_SHORT).show();
if(mediaPlayer.isPlaying())
{
mediaPlayer.pause();
buttonPlayPause.setBackgroundResource(R.drawable.ic_play_arrow_black_24dp);
}
else
{
mediaPlayer.start();
buttonPlayPause.setBackgroundResource(R.drawable.ic_pause_black_24dp);
}
SetTimeTotal();
TimeDuration();
btnshuffle.setBackgroundResource(R.drawable.shuffletouch);
oncompletiononce();
} else {
initcommands();
isShuffle = true;
Toast.makeText(getApplicationContext(), "Shuffle is ON", Toast.LENGTH_SHORT).show();
buttonPlayPause.setBackgroundResource(R.drawable.ic_pause_black_24dp);
isRepeat = false;
btnshuffle.setBackgroundResource(R.drawable.shuffletouchfocused);
repeat.setBackgroundResource(R.drawable.btn_repeat);
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
nextsong();
UpdateTimeSong();
}
});
buttonPlayPause.setBackgroundResource(R.drawable.ic_pause_black_24dp);
isRepeat = false;
btnshuffle.setBackgroundResource(R.drawable.shuffletouchfocused);
repeat.setBackgroundResource(R.drawable.btn_repeat);
}
}
});
public void nextsong () {
position++;
if(position > arraySong.size()-1)
{
position = 0;
}
if(mediaPlayer.isPlaying())
{
mediaPlayer.pause();
}
CreateMediaPlayer();
//audioPlayer.startPlayer(position);
mediaPlayer.start();
buttonPlayPause.setBackgroundResource(R.drawable.ic_pause_black_24dp);
closebutton.setBackgroundResource(R.drawable.ic_highlight_off_black_24dp);
initcommands();
oncompletiononce();
}
private void UpdateTimeSong()
{
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//check time song -> if end -> next
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
position++;
if (position > arraySong.size() - 1) {
position = 0;
}
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause();
}
CreateMediaPlayer();
mediaPlayer.start();
buttonPlayPause.setBackgroundResource(R.drawable.ic_pause_black_24dp);
SetTimeTotal();
UpdateTimeSong();
}
});
handler.postDelayed(this, 500);
}
},100);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.