我在比赛片段中的比赛时间内有一个反击计时器;
//Countdown clock button
Button counterBtn = (Button) view.findViewById(R.id.matchCountDownBtn);
counterBtn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
updateDBMatches("played", 1);
final Button counterBtn = (Button) getView().findViewById(R.id.matchCountDownBtn);
new CountDownTimer(20000, 1000){
public void onTick(long millisUntilFinished){
stopWatch.setVisibility(View.VISIBLE);
counterBtn.setEnabled(false);
long l = millisUntilFinished / 1000;
int i = (int) l;
counterBtn.setText(secondsToString(i));
}
public void onFinish(){
MediaPlayer mp = MediaPlayer.create(getContext(), R.raw.airhornsoundeffect);
mp.start();
//Disable score buttons
Button homeFoulsBtnDisabled = (Button) getView().findViewById(R.id.btnHomeFouls);
Button awayFoulsBtnDisabled = (Button) getView().findViewById(R.id.btnAwayFouls);
homeFoulsBtnDisabled.setEnabled(false);
awayFoulsBtnDisabled.setEnabled(false);
Button counterBtn = (Button) getView().findViewById(R.id.matchCountDownBtn);
stopWatch.setVisibility(View.INVISIBLE);
counterBtn.setText("FULL TIME");
updateDBMatches("played", 2);
}
}.start();
}
});
所有工作都很棒,直到有人导航到另一个片段,并且在倒计时完成后我会收到错误。因此,例如MediaPlayer mp在尝试播放声音时会抛出一个空例外。
即使用户导航到另一个片段,有没有办法维护片段的状态?
所有帮助表示赞赏。