错误的状态类,期望查看状态但收到类 android.widget.CompoundButton$SavedState

Ahm*_*ari 5 android android-fragments android-view

java.lang.IllegalArgumentException: Wrong state class,期待查看状态,但收到了class android.widget.CompoundButton$SavedState。当不同类型的两个视图在同一层次结构中具有相同的 id 时,通常会发生这种情况。这个视图的id 是 id/0x2。确保其他视图不使用相同的 ID。

它发生在屏幕旋转时以及当尝试返回片段时没有重复 id 请有人帮助我

Kil*_*ler 7

正如问题所描述的那样,为什么会发生这种情况。

当不同类型的两个视图在同一层次结构中具有相同的 id 时,通常会发生这种情况。

确切地说,将有两种不同类型的视图具有相同的 id,这可能发生在动态膨胀视图上。在我的情况下,我有两个ViewStub具有相同的视图id,并inflatedId因此,视图的充气后。应用程序进入一种状态,即视图层次结构中存在一个 ViewStub 和其他膨胀的视图,其 ID 相同,从而导致崩溃。


A. *_*ets 6

就我而言,我 onRestoreInstanceState尝试将自定义SavedState类发送到时没有正确实现super.onRestoreInstanceState

我解决了它发送savedState.getSuperState到超级电话。


Ahm*_*ari 5

我已经解决了它....这是因为视图的ID重复,主要是当我们动态添加视图而不设置ID时(在我的情况下具有相同的单选按钮文本)

要解决此问题,请首先检查您动态添加的所有视图

  • 我不明白你能详细说明一下吗? (14认同)
  • 有没有工具或其他东西可以检测此类问题? (4认同)