SORU
19 Ocak 2009, PAZARTESİ


Etkinlik rotasyon Android yeniden başlatın

I Activity yeniden aygıtı (klavye dışarı slayt) sonra benim döndürdüğünüzde benim Android uygulaması (onCreate) denir). Şimdi, bu olması gerektiği nasıl muhtemelen, ama ilk bir sürü onCreate yöntem kurma ben de istiyorum:

  1. Tüm ilk aygıt rotasyon kayıp değil yani başka bir işlevi kurma ya
  2. onCreate Bir daha çağrılmaz ve her sayfa veya ayarlar bir şekilde
  3. onCreate denir değil, sadece portre için uygulama sınırı.

CEVAP
19 Ocak 2009, PAZARTESİ


Uygulama Sınıfı kullanarak

Başlatma senin ne yaptığını bağlı olarak Application genişleten yeni bir sınıf oluşturma düşünebilirsiniz ve bu sınıfın içinde onCreate geçersiz kılınmış bir yöntemi içine başlatma kodu hareketli.

public class MyApplicationClass extends Application {
  @Override
  public void onCreate() {
    super.onCreate();
    // TODO Put your application initialization code here.
  }
}

Uygulama sınıfı onCreate Etkinlik yönelim yeniden böylece tüm uygulama oluşturulduğunda sadece denir ya klavye görünürlük değişiklikleri tetiklemez.

İyi uygulama bir singleton olarak bu sınıf örneği sergilemek ve alıcıları ve ayarlayıcıları kullanarak başlatılıyor sen uygulama değişkenler gösteriyor.

NOT: kayıtlı ve kullanılması için bildirimde yeni Uygulama sınıfı: adı belirtmeniz gerekir

<application
    android:name="com.you.yourapp.MyApplicationClass"

Yapılandırma Değişikliklere tepki[GÜNCELLEME: 13; see the recommended alternative API] beri önerilmiyor

Bir başka alternatif olarak, uygulamanızın yeniden sebep olan olaylar – oryantasyon ve klavye görünürlük değişiklikleri gibi – dinle ve Etkinlik içinde onları işleyebilir.

Etkinlik bildirimi düğümü android:configChanges düğüm ekleyerek başlayın

android:configChanges="keyboardHidden|orientation"

ya Android 3.2 (API level 13) and newer:

android:configChanges="keyboardHidden|orientation|screenSize"

Etkinlik içinde onConfigurationChanged yöntemini geçersiz kılar ve setContentView GUI düzenini yeniden yapılan yeni bir yönde zorlamak için arayın.

@Override
public void onConfigurationChanged(Configuration newConfig) {
  super.onConfigurationChanged(newConfig);
  setContentView(R.layout.myLayout);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Autocar

    Autocar

    11 Mart 2006
  • CorridorDigital

    CorridorDigi

    17 Mayıs 2010
  • jbignacio

    jbignacio

    13 Mart 2006