IllegalStateException ошибка в Android-фрагмент - PullRequest
0 голосов
/ 12 октября 2019

Я использую CountDownTimer во фрагменте. Иногда onFinish () выдает ошибку

Присоединяет сообщения об ошибках и коды ошибок

public void onFinish()
{
    btnTimerStart.setText(getString(R.string.btn_restart));
    timer_display.setTextSize(45);
    timer_display.setText(getString(R.string.btn_complete));
}

java.lang.IllegalStateException: 
  at android.support.v4.app.Fragment.requireContext (Fragment.java:696)
  at android.support.v4.app.Fragment.getResources (Fragment.java:760)
  at android.support.v4.app.Fragment.getString (Fragment.java:782)
  at com.sinwho.timer.TimerFragment$11.onFinish (TimerFragment.java:751)
  at android.os.CountDownTimer$1.handleMessage (CountDownTimer.java:127)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:214)
  at android.app.ActivityThread.main (ActivityThread.java:7050)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:493)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:965)

1 Ответ

1 голос
/ 12 октября 2019

Проблема в том, что ваш getString() метод не может получить context. Дайте им контекст, используя getActivity(). Попробуйте это:

public void onFinish()
{
    btnTimerStart.setText(getActivity().getString(R.string.btn_restart));
    timer_display.setTextSize(45);
    timer_display.setText(getActivity().getString(R.string.btn_complete));
}

Надеюсь, ваша проблема будет решена.

...