Как добавить поля программно для TextView или даже TableRow для Android-приложений? - PullRequest
2 голосов
/ 03 декабря 2011

привет, я попытался добавить поля программно

я пробовал использовать

TextView tv = new TextView(this);
LayoutParams params = new LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
params.setMargins(100, 20, 0, 0);
layout.addView(tv, params);

, который использует android.widget.LinearLayout.LayoutParams, но из-за таблицы у меня возникла ошибка во время выполнения.

как мне тогда это сделать?

это мой код:

//create table row
TableRow trA = new TableRow(this);
        trA.setId(1000+i);
        trA.setLayoutParams(new LayoutParams (LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));

        //add data to table row
        TextView tvA = new TextView (this);
        tvA.setId(2000+i);
        tvA.setText(aList.get(i).toString());
        tvA.setTextSize(18);
        tvA.setTextColor(Color.BLACK);
        tvA.setClickable(true);
        tvA.setOnClickListener(this);
        tvA.setSingleLine(false);
        tvA.setHorizontallyScrolling(false);
        tvA.setWidth(0);
        tvA.setHeight(100);

        trA.addView(tvA);
        tableA.addView(trA,new TableLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));

== редактируется с помощью импорта android.widget.TableLayout.LayoutParams; ==

я добавил это в конце, где я объявляю таблицу

LayoutParams params = new LayoutParams (LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
params.setMargins(0, 0, 0, 20);

и отредактировал addView в таблице A

tableA.addView(tvA, params);

У меня ошибка в журнале cat, он отображается довольно часто, поэтому я привел основную информацию здесь: у указанного дочернего элемента уже есть родительский элемент. Сначала вы должны вызвать removeView () у родителя ребенка.

Ответы [ 2 ]

4 голосов
/ 03 декабря 2011
TableRow.LayoutParams params = new TableRow.LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
params.setMargins(100, 20, 0, 0);
0 голосов
/ 03 декабря 2011

Вместо этого вы можете попробовать TableRow.LayoutParams.

Так что измените ваш импорт на

import android.widget.TableRow.LayoutParams
...