2011-02-07 38 views

cevap

6

Burada Sen LinearLayout nesnesi olarak düzeni alarak r

LinearLayout mainLayout = (LinearLayout) findViewById(R.layout.main); 

yapıyor ur hatayı görüyorsun, LinearLayout numarası

deneyin almalı Bu

LinearLayout lnr = (LinearLayout) findViewById(R.id.LinearLayout01); 

Button b1 = new Button(this); 

b1.setText("Btn"); 

lnr.addView(b1); 
+0

Evet, ancak düğme xml'de tanımlanmamış. Aşağıdakileri yapmak istiyorum: Button b = new Button (this); LinearLayout mainLayout = (LinearLayout) findViewById (R.layout.main); mainLayout.addView (b), bunu deniyorum ama bir hata alıyorum. Bunu yapmanın yolu bu mu? – user501223

+0

Hata nedir? AddView (b, new LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)) sürümünü denediniz mi? – gngr44

+0

, logcat hatasını gösterebilir mi? – praveenb

0

Bunu s ile oldukça kolay yapabilirsiniz. görünüm eklemek istediğiniz yerleşimde bir kimlik belirtmek. senin main.xml şuna benzer ki:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <TextView android:id="@+id/label" 
     android:layout_width="fill_parent"/> 
    <LinearLayout android:id="@+id/container" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
    </LinearLayout> 
</LinearLayout> 

Şu kimliğe id/container ile LinearLayout için ek görünümler eklemek istediğiniz varsayalım. senin onCreate yöntemde daha sonra kullanmak üzere bu nesneyi geri alabilirsem:

tüm konteyner ViewGroup için diğer görünümleri eklemek için ayarlanır Şimdi
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    mContainer = (ViewGroup)view.findViewById(R.id.container); 
} 

: Eğer oluşturmanız gerekir getButtons yöntemde

LinearLayout theButtons = getButtons() 
mContainer.addView(theButtons); 

İhtiyacınız olan düğmeleri içeren LinearLayout. Ya bu program aracılığıyla veya bir XML dosyasında tanımlanmış bir görünümü şişirerek yaparsınız. Bakınız LayoutInflater.inflate.

3

Tamam, işe koyuldum. ilk XML düzeni şişirmek yani

View view = View.inflate(this, R.layout.main, null); 

Sonra ViewGroup sınıfa XML düzeninden kap nesne örneğini, yani

ViewGroup container = (ViewGroup) view.findViewById(R.id.myContainer); 

Ardından:

adımları şunlardır Bir linearLayout nesnesi oluşturun, gerekli olan tüm kontrolleri oluşturup ekleyin, konteynır nesnesine linearLayout ekleyin ve viewContentView öğesini view nesnesinde kullanın, örneğin,

container.addView(buttonsLayout); 
this.setContentView(view); 
+0

Mükemmel Teşekkür ederiz –

0

sadece bu deneyin:

LinearLayout mainLinearLayout = (LinearLayout) findViewById(R.layout.llmain); 

şimdi LinearLayout onether eklemek istiyorsanız o zaman şimdi dinamik bu

Button btn1 = new Button(this); 
btn1.setText=("Button 1"); 
mainLinearLayout .addView(btn1); 

gibi düğme oluşturmak düğmesinin ardından

LinearLayout llinner = new LinearLayout(this); 

Button btn2 = new Button(this); 
btn2.setText=("Button 2"); 
mainLinearLayout .addView(btn2); 

llinner.addView(btn2); 

mainLinearLayout .addView(llinner); 
0
altına ekleyin

Bunu deneyin:

LinearLayout ll =(LinearLayout)findViewById(R.id.linlay); 
Button b = new Button(this); 
b.setText("Hello"); 
l.addView(b); 

Bu benim belgeyi okudum ama varolan xml düzenini dosyasına (çalışma zamanında oluşturulan) yeni kontroller nasıl ekleneceğini söz etmez Eğer

İlgili konular