Android IllegalArgumentException:错误的状态类

Android IllegalArgumentException:错误的状态类,android,illegalargumentexception,Android,Illegalargumentexception,对于活动,我有两个不同的纵向和横向布局文件。一个方向的元素与另一个方向的元素有直接关系,除了它们可能通过基类相关,但不是完全相同的类型,并且它们具有相同的id。例如: 布局/main_layout.xml: ... <ListView android:id="@+id/current_news_list" android:layout_width="fill_parent" android:layout_height="fill_parent"/> 。。。 然后在layo

对于活动,我有两个不同的纵向和横向布局文件。一个方向的元素与另一个方向的元素有直接关系,除了它们可能通过基类相关,但不是完全相同的类型,并且它们具有相同的id。例如:

布局/main_layout.xml:

...
<ListView
 android:id="@+id/current_news_list"
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent"/>
。。。
然后在layout land/main_layout.xml中: CustomListView是android.widget.AdapterView的一个子类

...
<CustomListView 
 android:id="@+id/current_news_list"
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent"/>
。。。

更改方向时抛出“IllegalArgumentException:错误的状态类”。这是预期的行为吗?我没有重写配置更改代码,而是让活动完全销毁和重建。我避免了在布局层次结构中同时使用相同标识符的其他情况。

将视图的值saveEnabled设置为false

更改方向时,它会尝试保存具有ID的视图的状态,并在重新创建活动时尝试重新创建相同的状态。因此,对于您的情况,一种类型不能转换为另一种类型。即,无法将ListView转换为CustomListView

然后,你必须自己处理这两个方向