首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

setContentView错误

2012-05-20 
setContentView异常我的程序有两个视图一个是主视图MainView,继承自SurfaceViewactivity启动是就是设置这

setContentView异常
我的程序有两个视图
一个是主视图MainView,继承自SurfaceView
activity启动是就是设置这个视图为当前视图
还有一个是opengl的视图GlView,继承自GLSurfaceView
这两个视图之间没有任何关系
只是在MainView里的一个按钮里,点击一下就会调用setContentView(GlView)切换到gl视图显示
这时没有任何问题
而在GlView里调用setContentView(MainView)切换回去的时候出现异常了

ERROR/AndroidRuntime(4078): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

我程序里的这两个视图根本就没有什么父子关系的
为什么会有这样的异常?

[解决办法]
MainView 因为之前已经加载过了,有了父级别的容器,之后又加载就会报错,需要在加载之前,让mainview的父级别先remove掉mainview,才能加载mainview。
你可以都加在在一个容器中,用隐藏和显示来切换。
[解决办法]
...
只是在MainView里的一个按钮里...
...

SurfaceView里只能有一个直接子类,你可以用一个其它布局把里面的所有控件装起来,再把这个布局放在SurfaceView里就可以了,如果还没有解决,贴出你的XML布局来看看。

热点排行