2015-08-30 48 views
5

Bir düğmeye her basıldığında bir metni bir LinearLayout'a dinamik olarak ekleyip sildiğim bir uygulama yaptım.Yapılandırma değişiklikleri yapıldıktan sonra androidde şişirilmiş bir düzen nasıl kaydedilir?

Sorunum, ekran yönelimi değiştiğinde, etkinliği yeniden başladığında eklenen tüm textViews öğelerinin kaybolmasıdır. LinearLayout şişirilmiş durumu nasıl koruyacağımı bilmiyorum.

Bu

Ben görüş ve düğmeleri başlatmak kod parçasıdır:

private LayoutInflater inflater; 
private LinearLayout ll; 
View view; 
Button add; 
Button delete; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    inflater = getLayoutInflater(); 
    ll = (LinearLayout)findViewById(R.id.ll); 
    add = (Button)findViewById(R.id.bAdd); 
    delete = (Button)findViewById(R.id.bDelete); 

    add.setOnClickListener(this); 
    delete.setOnClickListener(this); 

ve onClick yöntemine Ben textViews eklemek veya silmek:

@Override 
    public void onClick(View v) { 
     switch (v.getId()) 
     { 
      case R.id.bAdd: 
      { 
       view = inflater.inflate(R.layout.sublayout,ll,true); 
       break; 
      } 
      case R.id.bDelete: 
      { 
       int childSize = ll.getChildCount(); 
       if(0 != childSize) { 
        ll.removeViewAt(childSize -1); 
       } 
       Log.i("InflateLayout", "childsize: " +childSize); 
      } 
     } 
    } 
+0

olası yinelenen şunlardır [Android: Nasıl Ekran yönü değişikliği aktivitenin örneğini kaydetmek için? Sadece basit değişkenler değil nesneleri kullanıyorum] (http://stackoverflow.com/questions/12291874/android-how-to-save-instance-of-the-activity-on-screen-orientation-change-i-us) –

cevap

0

döndürmek senin ekran etkinliği yok edilir ve yeniden oluşturulur. Herhangi bir veriyi saklamak için etkinlik durumunuzu kaydetmeniz gerekir.

nedeniyle bir yapılandırma değişikliği etkinlik yeniden başlatıldığında bir Fragment istinat ederek faaliyetini reinitializing yükünü hafifletmek Buraya bakın burada Saving Android Activity state using Save Instance State

+0

Teşekkürler, bir göz atacağım ve bir parça – toplusde

+0

@toplusde üzerinden yapmaya çalışıyorum. –

1

bakın. Bu bölüm, korumak istediğiniz durum bilgisi olan nesneler için başvurular içerebilir.

Android sistemi bir yapılandırma değişikliği nedeniyle etkinliğinizi kapattığında, etkinliğini korumak için işaretlediğiniz etkinliklerin parçaları yok olmaz. Durum bilgisi olan nesneleri korumak için bu tür parçaları etkinliğinize ekleyebilirsiniz.

bir çalışma zamanı yapılandırma değişikliği sırasında bir parçadaki durum bilgisi nesneleri korumak için:

senin durum bilgisi nesnelerine başvuruları Fragment sınıfı 1-uzatın ve beyan ederim. Parça oluşturulduğunda 2-Çağrı setRetainInstance (boolean)

.

3-Parçayı etkinliğinize ekleyin.

4-Etkinlik yeniden başlatıldığında parçayı almak için FragmentManager kullanın.

fazla detay ait here

+0

Bu özel uygulama için bir fragman kullanmayı denemedim. Parçaları ve enflasyonu karıştırmanın mümkün olup olmadığından emin değildim. Yine de deneyeceğim. – toplusde

İlgili konular