2011-07-12 18 views
5

Bir Etkinlik için, dikey ve yatay yönelimler için iki farklı düzen dosyam var. Bir yönelimin öğeleri, temel sınıf ile ilişkili olabilecekleri, ancak aynı türde olmadıkları ve aynı kimliğe sahip olmaları dışında, diğer yönelimde bulunan öğelere doğrudan ilişkindir. Yani örneğin:IllegalArgumentException: Yanlış durum sınıfı

düzen/main_layout.xml:

düzen-kara/main_layout.xml sonra
... 
<ListView 
android:id="@+id/current_news_list" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"/> 

: CustomListView android.widget.AdapterView

bir alt sınıfı
... 
<CustomListView 
android:id="@+id/current_news_list" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"/> 

"dir Yönlendirmeler değiştirilirken IllegalArgumentException: Yanlış durum sınıfı "atılır. Beklenen davranış bu mu? Konfigürasyon değiştirme kodunu geçersiz kılmadım ve aktivitenin tamamen imha edilmesine ve yeniden yapılandırılmasına izin veriyorum. Aynı zamanda düzen hiyerarşisinde aynı tanımlayıcılara sahip başka örneklerden kaçındım.

cevap

10

Görünümün değerini saveEnabled değerini false olarak ayarlayın. Yön değişikliğiyle birlikte

http://developer.android.com/reference/android/view/View.html#attr_android:saveEnabled

, bu kimlikleri görüşlerin durumlarını kurtarmaya çalışır ve etkinlik yeniden ederken aynı yeniden dener. Yani, sizin durumunuz için, bir tür diğer türe dönüştürülemez. yani. Bir ListView, bir CustomListView'a dönüştürülemez.

Ve sonra, hem yönlendirmeleri kendiniz ele almanız gerekecek.

+0

Teşekkürler - Bu hile yaptı! – jchristof

İlgili konular