android - android片段中的IllegalStateException错误
问题描述
我在片段中使用 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)
解决方案
问题是您的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));
}
希望你的问题能得到解决。
推荐阅读
- arrays - Google 脚本中的动态 if 语句
- mariadb - 无法启动 galera 集群 - -bash: galera_new_cluster: command not found
- reactjs - Spring Boot 使用 React 添加 UI
- apache-spark - 如何在没有下载 hive 的情况下连接到远程 Hive 服务器?
- sql - columnA 的总和,其中另一个 columnB 是特定值而不显示 columnB
- c# - 程序未根据案例陈述产生预期结果
- javascript - “今天”视图上的 buttonText 未更新
- python - Python:删除谷歌视觉 api 中的垂直和水平线
- sitefinity - 如何关闭分页?
- gnupg - 我正在尝试解密给定 .asc 文件的 .pgp 文件