12

Android geliştirme konusunda yeniyim. Portre ve manzara modu için ayrı ekranlar var. Yönlendirmeyi değiştirdiğimde ilgili ekran yüklenir ve etkinlik yeniden başlatılır. Artık yönlendirmeyi değiştirdiğimde etkinliğimin yeniden başlatılmasını istemiyorum, ancak ilgili ekranı (axml) yüklemeliyim. I, yönlendirme değiştiğinde etkinliğin yeniden başlatılmasını engeller

çalıştılar

[Etkinlik (Etiket = "MyActivity", ConfigurationChanges = Android.Content.PM.ConfigChanges.Orientation)]

yukarıdaki satır aktivitesi yeniden elde durur, ancak aynı ekranı (axml) yükler. Lütfen öneriniz. senin aktivitesinde

public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { 
     setContentView(R.layout.portrait); 
     //do other initialization 
    } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     setContentView(R.layout.landscape); 
     //do other initialization 
    } 
} 

cevap

40

Yaz Bu kodu: sayesinde size oryantasyon kendini değiştirmek işlemek istediğiniz OS belirtilen beri

+0

11-07 13: 44: 47.143: E/AndroidRuntime (2586): Nedeni: java .lang.IllegalStateException: Yalnızca bir MapActivity öğesinde tek bir MapView'e sahip olmanıza izin verilir Bu hatayı içerdiğimde bu hatayı gösterir –

+0

Bu kodu mainActivity VEYA etkinlikteki her Fragman ve R.layout.landscapeView ve R.layout öğelerine ekleme .portraitView iki farklı düzen vardır – Kailas

+0

Vay be! Her şey istedim! :) –

5

, şimdi böyle bir düzen herhangi bir değişiklik kendini işlemek için var

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 

    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     setContentView(R.layout.landscapeView); 

    } else { 
     setContentView(R.layout.portraitView); 
    } 
} 

Ve ayrıca Manifest dosyasında bu satırı ekleyin

android:configChanges="orientation|keyboardHidden|screenSize" 

Bu, her iki şeyi de ele alacak, etkinliğinizi yeniden başlatmayacak ve düzeni yönelim değişikliklerine göre yükleyecektir.

+1

Yönlendirme değişiklikleri için OnCreate() yöntemi çağrılıyor. – sujay

+0

@surjay Manifest dosyasındaki CopsOnRoad