2012-01-31 6 views
12

Mam te pola tekstowe, które generowałem dynamicznie. Ale nie mogę ustawić parametrów układu dla nich. Powiedz mi, co robię źle.Jak dynamicznie ustawić parametry układu w systemie Android?

Potrafię wygenerować pola bez parametrów układu. Jednak jeśli użyję LayoutParams, to nawet nie zostanie wygenerowany.

Kod:

TableLayout table = (TableLayout) findViewById(R.id.TableLayout1); 

TableRow tr = new TableRow(this); 
LinearLayout.LayoutParams trparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
tr.setLayoutParams(trparams); 

cg[i] = new EditText(this); 
weight[i] = new EditText(this); 
cg[i].setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); 
weight[i].setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); 

//Here's where it goes wrong. By adding fieldparams, the text field doesn't even get generated. 
LinearLayout.LayoutParams fieldparams = new LinearLayout.LayoutParams(10, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f); 
tr.addView(cg[i], fieldparams); 
tr.addView(weight[i], fieldparams); 

table.addView(tr); 
+6

Czy używasz linearlayout.layoutparams na tablerow? To shud be tablerow.layoutparams – Amit

+1

Przyjemny komentarz ... korekta butlit Amit.it będzie TableLayout nie TableRow – Sameer

Odpowiedz

14

możliwość dodawania wiersza tabeli do tabeli więc używać TableLayout.LayoutParams zamiast LinearLayout.LayoutParams .Jak używamy LayoutParam według rodzica, w którym mamy zamiar dodać

6

trzeba użyć TableRow.LayoutParams zamiast LinearLayout.LayoutParams

Wymień kod

LinearLayout.LayoutParams fieldparams = new LinearLayout.LayoutParams(10, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f); 

z poniższym kodem.

TableRow.LayoutParams fieldparams = new TableRow.LayoutParams(10, TableRow.LayoutParams.WRAP_CONTENT, 1.0f); 

Działa dobrze. Daj mi znać, co się stało. :-)