2011-06-03 14 views
5

Dokümanlarda, sekmeleri değiştirdiğinizde parçanın daha önce olduğu gibi görünmesi için eylem çubuğundaki sekmeleri kullanırken bir parçanın durumunu kaydetmenizi sağladığını bildirir. Bu nasıl yapılır? Sekme işlemek için örneği kullanarak, sekme değiştirildiğinde onSavedInstanceState çağrılmıyor, bu yüzden eyaleti nereye kaydedeyim? Bunu aktivite seviyesinde yapıyorum? Sadece devletin geçici olmasını istiyorum.Android - Honeycomb - Action Çubuğu sekmesi parçacıkları kaydetme/geri yükleme durumu

Teşekkür

cevap

1

Fragment.onSaveInstanceState() doğru yerdir. Devletin kurtarılması gerektiğinde bu çağrılacak. Eğer çağrılmazsa, henüz kaydedilmeye gerek yoktur.

+0

Bu benim için işe yaramıyor. Örnek işleme yöntemi sekmelerini kullanırsanız, parça yöneticisi sekmeyi seçmediğinizde parçayı kaldırır ve sekmeyi seçtiğinizde parçayı ekler. List'inize geri döndüğünüzde bir ListFragment'iniz varsa, listenin neresinde olduğunuzu bile hatırlamıyor. Ön-3.0, sekmelerde aktiviteler olsaydı, sistem tarafından devlet hatırlandı. HC'de aynısını yapmaya çalışıyorum ama onSavedInstanceState çağrılmıyor. – Nic

+3

onSaveInstance durumu yalnızca parça tamamen kaldırılmışsa çağrılır. Örneğin ekran yönünü değiştirirseniz. Şu anda bir şey kaydetmek istiyorsanız, sekme, sekme seçiliyse gösterilen parçadaki onPause öğesinin üzerine yazılır. – Janusz

+0

Güncelleştirilen paketi onActivityCreated bloğu aracılığıyla onPause'da depolarsam nasıl elde edebilirim - setArgümanı arayamıyorum çünkü fragman hala aktif –

0

Aynı problemle karşılaştım ve fazlalık hisseden bir çözüm buldum (bu işlevin satırda daha iyi çalışacağını varsayıyorum), ancak işe yarıyor. Çözüm, devlet paketlerini etkinlik aracılığıyla manuel olarak yönetmektir.

Kaydetme durumu: Her parçada, parçanın kaydetmek istediği durum verilerini içeren bir paket döndüren getState() gibi bir işlev denilen bir işlevi uygulayın. Etkinlik, parçayı görünümden çıkarmadan önce bunu çağırmalıdır.

Geri yükleme durumu: Daha önce kaydedilen aynı paketi kabul eden parçaya bir yöntem veya yapıcıyı uygulayın ve kullanılacak paketi paketinden çıkarın ancak parça için anlamlı olur. Etkinlik, fragmanı tekrar görünüme eklediğinde, paketi daha önce sağlanan parçaya aktarın ve ayarlamanız gerekir.

İlgili konular