Я пытаюсь добавить tableLayout во время выполнения к существующему LinearLayout в main.xml. Я добавил editText (R.id.editText1) в main.xml. Вот мой код. Это не работает. Я получаю ошибку времени выполнения (приложение неожиданно остановилось).Android - Добавление макета во время выполнения к основному макету
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
text = (EditText)findViewById(R.id.editText1);
TableLayout tblLayout = new TableLayout(this);
tblLayout.setLayoutParams(new TableLayout.LayoutParams(8,5));
tblLayout.setPadding(1,1,1,1);
for(int r=0; r<ROW_COUNT; ++r)
{
TableRow tr = new TableRow(this);
for(int c=0; c<COL_COUNT; ++c)
{
int index = r * COL_COUNT + c;
buttonList.add(new Button(this));
buttonList.get(index).setText(buttonNames[index]);
tr.addView(buttonList.get(index), 60, 30);
}
tblLayout.addView(tr);
}
LinearLayout mainLayout = (LinearLayout)findViewById(R.layout.main);
mainLayout.addView(tblLayout);
setContentView(mainLayout);
}
Любые указатели были бы весьма благодарны. Благодарю.
Вставьте ваш LogCat. Это может быть любое количество причин ... Например, buttonList может быть нулевым (вы его создавали?) – IncrediApp
В соответствии с логарифмом ошибка, похоже, происходит в этой строке CalculatorActivity.java:46, которая равна mainLayout. addView (tblLayout); У меня есть экземпляр buttonList. –