2010-04-07 17 views
12

Değiştirme Konusunda Yenilenmiyor alma dayalı bir sunucu ve böylece Doldurulması çağıran Ağ URL'leri dahildir . Aynı etkinlik sınıfında ListView ArrayAdapter var.Android ListView ben içindeyiz ListView ile Etkinliği açıksa ve Faaliyet onCreate yönteminde ben ListView bu Veriler Verileri yerleştirmek için kod var Yönünü

Karşılaştığım Sorun şu ki, Tüm senaryoları Dinle Etkinliğim uygun bir şekilde davranıyor, ancak Yönlendirmeler [Peyzajlı ya da başka bir yol için Dikey] gerçekleşiyorsa Veri kayboluyor ve Yeni Veri alıyor Aynı Eski Verileri Doldurmak için Çağrılar Aranıyor Bu kodun amacı dışında bir şey değil, bununla nasıl başa çıkmalıyım.

cevap

23

Bunu yapar, böylece yönlendirmeye özgü (diğer nedenlerin yanı sıra) farklı kaynakları (örneğin düzenler) belirtebilirsiniz.

AndroidManifest.xml sayfanızdaki aktivitelerinizi gidermek için android:configChanges="orientation"'u eklemeniz ve onConfigurationChanged()'u geçersiz kılmanız gerekir. InConfigurationChanged() 'ın içinde özel bir şey yapmanız gerektiğine inanmıyorum, basitçe uygulamak hile yapmalı.

+6

OnConfigurationChanged() öğesini geçersiz kılmanız gerektiğini düşünmüyorum. Android ekleme: configChanges yeterli olmalıdır. –

+1

OMG Thats Hiç hayal edebilirsiniz Büyük Rölyef ... Sen, sen sadece ... sadece Me verdiği WonderFul iyi kavramak için bir tonn .. –

+0

düşünmek gel Teşekkür Saved My Life nasıl oldu hiçbir fikrim yok janfsd muhtemelen doğru ... onConfigurationChanged içinde yararlı bir şey yapmıyorsanız, varsayılan uygulamanın bunu yapmasına izin verin. – rascalking

2

AFAIK tüm Etkinlik bir yön değişikliği üzerinde yeniden oluşturulur! Anoter uygulamasına geçip daha sonra geri dönerseniz aynı durum geçerlidir. Verilerin saklanmasını öneririm, SharedPreferences veya bunları XML'e serileştirir ve depolar.

başka olasılık hafızasında veri depolayan ve faaliyet hizmetinden veri poluplates kendi hizmetini kayıt olabilir. Yönlendirme değişikliklerini kendiniz halledeceğinizi söylemediğiniz sürece, Android etkinliğinizi durduracak ve yeniden başlatacaktır.

+0

Hizmetin Kayıt Olduğunu En İyi Alternatif olduğunu düşünüyorum. –

+0

Android Services'e Amacım için Daha Fazla Bilgi Alabilirmiyim –

12

Ayrıca, API 13 veya daha yüksek hedefleme için "screenSize" da kullanılmalıdır. Bu durumda, Android manifest'inize

'u ekleyin.

Daha fazla bilgi için here.

0
android:configChanges="orientation|screenSize" 

Bu kod, yalnızca yatay mod için başka bir düzenimiz yoksa işe yarayacaktır!