2009-06-18 21 views
29

Android platformunda uygulama gibi bir sihirbaz yapmanın en iyi yolunun (kullanıcı bir sonraki ve geri düğmesiyle ekranlar arasında gezinebilir ve her ekranın bazı durum verilerini kaydetmesi gerekir) hangisi olduğunu düşünüyorsunuz.Android için uygulama gibi bir sihirbaz yapın

Ben esas iki yaklaşımlar düşünebilirsiniz:

  1. her ekran için bir aktiviteyi + görüntülemek olması ve sonra ben her aktiviteyi arayarak ekran geçiş yapmak. Bunu güzel kılan şey, sistem geri düğmesini kullanabildiğim, arka işleyicim olarak kullanabilmem ve her bir faaliyetin kendi devletini kurtaracağından, kendime bakmak zorunda değilim.

  2. Tek bir etkinliğe ve birçok görünüme sahip olmak ve her bir ekrandaki görünümleri değiştirdiğimde bu, daha fazla kodu yeniden kullanmama yardımcı olur, ancak kaydetmenin karışıklık yarattığını belirtir.

Ne düşünüyorsunuz? Android'de bunu yapmanın en iyi yolu hangisidir?

cevap

12

Etkinlik ve görüşlerin amacına uygun olarak 2 ile devam etmenizi öneririm. Bu durumda kaydetme durumu kolaydır - MVC desenini kullanırsanız, yalnızca görünümlere aktarılan bir model nesnesine sahip olabilirsiniz. Her görünümde, modelin okuyabileceği/yazabileceği bölümler bulunur. Nerede olursanız olun, model her zaman mevcut duruma sahip olmalıdır. Eğer bertaraf ederseniz, sadece modeli kaydedin. Geri yükleme, her sayfayı gösterdiğinizde modelden zaten okuduğunuzdan otomatik olarak çalışır.

+0

harika bir seçenek gibi görünüyor – Aada

+2

Sihirbaz işlevselliğini çok kolay bir şekilde oluşturmanızı sağlayan bir kütüphane var [WizarDroid] (http: // wizardroid.codepond.org). İyi belgelenmiş ve sürekli gelişim. –

+0

@ CodePond.org Bu tam olarak ihtiyacım olan şey. Harika çalışıyor ve örneği taklit etmek için zamanım olmadı. – theblang

1

Bence 2 daha iyi. Her bir "sayfayı" bir görünüme yerleştirin ve ardından sadece gösterme ve gizleme arasında geçiş yapın. Güzel geçişler yapmaktan vazgeçirir. Hangi devleti sürdürmeyi düşünüyorsun? Otomatik olarak çalışmayan tek odak noktası olacaktır ve sanırım her sayfa değiştirdiğinizde bunu sıfırlamak isteyebilirsiniz. Uygulamanız için doğru davranış olduğunu düşündüğünüzde, geri çekilmek de çok önemlidir.

1 ile hemen hemen tüm kodunuzu yeniden kullanabilirsiniz (yalnızca kendi WizardBase sınıfınızı tanımlayabilirsiniz), ancak görüntülerin görünümler arasında geçiş yapmaktan çok daha yavaş olduğunu (ve daha fazla bellek gerektirdiğini) düşünüyorum.

6

Daha doğal göründüğü için ilk yaklaşıma gittim. Başka bir uygulama görünümleri değiştirmek için ViewFlipper kullanır, ancak sihirbaz gibi bir şeyden çok uzaktır.

+0

Android'in çalışması gereken yol budur. –

+0

@Isaac Waller Nedir? ViewFlipper kullanmıyor musunuz? –

+0

http://developer.android.com/reference/android/widget/ViewFlipper.html – wes

17

Android'in ViewPager üzerine kurulu, etkinlik benzeri sihirbazlar oluşturmak için kullanılabilecek, hafif bir Android kitaplığı geliştirdim. Şuna bak: WizarDroid.

+4

Bunun için daha fazla oy gerekiyor. Güzel çözüm –

+0

Bu güzel bir çözüm, ancak oldukça genel değil. Görüntüleme cihazındaki güven, her iki tarafta oluşturulmuş en az bir parçaya sahip olmayı gerekli kılar; bu, bir sonraki adımın içeriği henüz belirlenmemişse uygun olmayabilir. –

+0

, destek lib 19.x w/newer destek lib sürümlerine bağlı olarak Wizardroid'i nasıl kullanacağını anlayamıyor – m02ph3u5

İlgili konular