关于java.lang.StackOverflowError的问题求各路朋友和大神指点

大シ毎 2014-12-21 04:49:37
我在运行程序测试时,打开程序是可以运行的,但想跳到第二个选项栏的时候直接退出报错,我已经纠结了好多天了,求各路朋友和大神详细指点,怎么解决,从哪解决.
...全文
239 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
大シ毎 2014-12-24
  • 打赏
  • 举报
回复
恩,我查看了下,我也是这样改的,我到最后才发现这个super.setBackground()方法要考虑版本问题,最低要16版本,低于这个版本就会出现我这个错误,可以用this.setBackgroundDrawable代替,但这个方法过时了. 再次多谢大家指点
_xianfeng99 2014-12-24
  • 打赏
  • 举报
回复
一楼是让你在原来的基础上改,setBackground(Drawable)这个方法是覆盖了父类的方法,如果在里面直接用setBackground的话就是调用自己类中的方法,这样就一直递归调用的栈溢出了。 所以有两种方式: 1.在setBackground(Drawable)中调用super.setBackground(),这样就可以了。 2.修改setBackground的方法名,然后在里面调用setBackground(当然super.setBackground也可以) 看看你是不是继承的View,或者跟方式上面的SupperssWarnings这个标签有关。
大シ毎 2014-12-24
  • 打赏
  • 举报
回复
那怎么用,我改过名字后super不了.
gao_chun 2014-12-21
  • 打赏
  • 举报
回复
递归貌似不是这么用的,兄弟
Birds2018 2014-12-21
  • 打赏
  • 举报
回复
你自己调用自己的函数 当然是无限调用 直到方法stack溢出。 你要改一下你的setBackground方法名字,里面再调用super.setBackground方法。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧