2010-07-09 28 views
12

Görünümler doğrusal bir düzen programsal olarak eklemeye çalışıyorum.Android: Programlı olarak iki metin görünümü ekleyin

LinearLayout layout  = (LinearLayout) findViewById(R.id.info); 
    String [] informations = topOffer.getInformations(); 
    TextView informationView; 
    View line = new View(this); 
    line.setLayoutParams(new LayoutParams(1, LayoutParams.FILL_PARENT)); 
    line.setBackgroundColor(R.color.solid_history_grey); 
    for (int i = 0; i < informations.length; i++) { 
     informationView = new TextView(this); 
     informationView.setText(informations[i]); 
     layout.addView(informationView, 0); 
     layout.addView(line, 1); 
    } 

İlk önce, yalnızca bilgileri ekledimView, ve her şey iyi çalıştı. Ayrıca satır-Görünüm ekledikten sonra Butt, aşağıdaki hatayla çöktü:

java.lang.IllegalStateException: Belirtilen çocuğun zaten bir üst bilgisi var. Önce çocuğun ebeveyinde removeView() öğesini çağırmalısınız. ...

Has birini bir çözüm

Yani addView (Görünüm v, int indeks) çalıştı, ama aynı mesajla çöktü?

sayesinde Martin

cevap

2

Aynı ana görünümünde birden çok kez aynı çocuk görünümü eklemek olamaz. Her seferinde yeni bir görünüm oluşturmalı veya yeni bir görüntüyü şişirmelisiniz. gpmoo7 olarak

12

çemberinde yeni bir görünüm her zaman yaratmak gerektiğini söyledi

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.linear); 

    LinearLayout layout = (LinearLayout) findViewById(R.id.linear); 

    String[] informations = new String[] { "one", "two", "three" }; 
    TextView informationView; 

    for (int i = 0; i < informations.length; i++) { 
     View line = new View(this); 
     line.setLayoutParams(new LayoutParams(1, LayoutParams.MATCH_PARENT)); 
     line.setBackgroundColor(0xAA345556); 
     informationView = new TextView(this); 
     informationView.setText(informations[i]); 
     layout.addView(informationView, 0); 
     layout.addView(line, 1); 
    } 

} 
İlgili konular