Я пытаюсь создать TableLayout программно. Это просто не сработает. Тем не менее, тот же макет в XML файле работает. Это то, что у меня есть:
public class MyTable extends TableLayout
{
public MyTable(Context context) {
super(context);
setLayoutParams(new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
TableRow row = new TableRow(context);
row.setLayoutParams(new TableRow.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
Button b = new Button(getContext());
b.setText("hello");
b.setLayoutParams(new LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
row.addView(b);
addView(row)
}
}
...
// In main activity:
MyTable table = new MyTable(this);
mainLayout.addView(table);
Когда я запускаю это, я не получаю сбой, но ничего не появляется. Если я избавлюсь от экземпляра TableRow, по крайней мере кнопка появится в виде прямого дочернего элемента TableLayout. Что я делаю неправильно?