アクティビティの場合、縦向きと横向きの 2 つの異なるレイアウト ファイルがあります。ある方向の要素は、他の方向の要素と直接関係がありますが、基本クラスによって関連付けられている可能性がありますが、まったく同じ型ではなく、同じ 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: Wrong state class」がスローされます。これは予想される動作ですか?構成変更コードをオーバーライドしておらず、アクティビティを完全に破棄して再構築しています。レイアウト階層で同時に同一の識別子を持つ他のインスタンスを回避しました。