Динамически добавить TableRow в TableLayout - PullRequest
19 голосов
/ 08 июля 2010

При нажатии кнопки запускается следующий метод:

public void createTableRow(View v) {
  TableLayout tl = (TableLayout) findViewById(R.id.spreadsheet);
  TableRow tr = new TableRow(this);
  LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
  tr.setLayoutParams(lp);

  TextView tvLeft = new TextView(this);
  tvLeft.setLayoutParams(lp);
  tvLeft.setBackgroundColor(Color.WHITE);
  tvLeft.setText("OMG");
  TextView tvCenter = new TextView(this);
  tvCenter.setLayoutParams(lp);
  tvCenter.setBackgroundColor(Color.WHITE);
  tvCenter.setText("It");
  TextView tvRight = new TextView(this);
  tvRight.setLayoutParams(lp);
  tvRight.setBackgroundColor(Color.WHITE);
  tvRight.setText("WORKED!!!");

  tr.addView(tvLeft);
  tr.addView(tvCenter);
  tr.addView(tvRight);

  tl.addView(tr, new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
}

R.id.spreadsheet - это XML TableLayout. По отладке я вижу, что к методу обращаются, но на экран ничего не выводится. Что дает? Нужно ли как-то сбрасывать представление содержимого?

1 Ответ

27 голосов
/ 08 июля 2010

Как оказалось, Eclipse не всегда прав. Ctrl + Shift + M сделал неправильный импорт. У него было import android.view.ViewGroup.LayoutParams, когда должно было быть import android.widget.TableRow.LayoutParams

Теперь все отлично работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...