即使在远离片段导航时也保持片段或元素的状态

时间:2018-03-10 09:20:43

标签: android android-fragments

我在比赛片段中的比赛时间内有一个反击计时器;

//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在尝试播放声音时会抛出一个空例外。

即使用户导航到另一个片段,有没有办法维护片段的状态?

所有帮助表示赞赏。

0 个答案:

没有答案