永发信息网

android自定义控件 切换横竖屏报错

答案:2  悬赏:0  手机版
解决时间 2021-03-19 18:35
  • 提问者网友:欲劫无渡
  • 2021-03-19 14:04
E/AndroidRuntime(14121): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.yy.myRadioButton/com.yy.Main}: java.lang.IllegalArgumentException: Wrong state class, expecting View State but received class android.widget.TextView$SavedState instead. This usually happens when two views of different type have the same id in the same hierarchy. This view's id is id/mrg. Make sure other views do not use the same id.
最佳答案
  • 五星知识达人网友:平生事
  • 2021-03-19 14:37
因为横竖屏切换的时候默认会重新调用onCreate,即重新创建了一次控件
要处理这个问题,在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入android:screenOrientation=”landscape” 属性。
参数说明:
1.landscape = 横向
2.portrait = 纵向



避免在转屏时重启Activity
1. android中每次屏幕方向切换时都会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次 Create的时候载入配置,那样,进行中的游戏就不会自动重启了!
2. 要避免在转屏时重启Activity,可以通过在AndroidManifest.xml文件中重新定义方向(给每个Activity加上 android:configChanges=”keyboardHidden|orientation”属性)。
3. 在需要控制屏幕显示方向的Activity中重写 onConfigurationChanged(Configuration newConfig)方法,这样在转屏时就不会重启Activity了。
全部回答
  • 1楼网友:詩光轨車
  • 2021-03-19 15:49
你的自定义控件只实现了一个参数的构造方法 view有三个构造方法 123public view(context context)public view(context context, attributeset attrs)public view(context context, attributeset attrs, int defstyle)要在布局中使用自定义控件,控件必须实现带参数attributeset的构造方法,实例化布局的时候会调用这个方法去实例化控件,否则就会报你图上的错误 另外引用自定义控件的时候必须用包名.类名的方式,否则也会报错
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯