Создание макета таблицы и добавление строк из кода в Android

Мне нужно создать макет таблицы и динамически добавлять строки из кода Java. Я уже читал здесь вопросы, но они упоминают о добавлении строк таблицы в уже созданный макет таблицы (из xml).

Мне нужно создать макет таблицы, а также динамически добавлять в нее данные. Может ли кто-нибудь предоставить некоторые материалы?

На данный момент у меня есть линейный код макета, который добавляет кнопки из кода один за другим, теперь мне нужно разместить его в табличном формате.


person Ali_Waris    schedule 08.10.2015    source источник


Ответы (3)


Чтобы добавить три кнопки в TableRow, используйте приведенный ниже код.

TableLayout tableLayout = new TableLayout(this);
    for (int i = 0; i < 10; i++)
    {
        TableRow tableRow = new TableRow(this);
        Button button = new Button(this);
        button.setText("1");
        tableRow.addView(button);

        button = new Button(this);
        button.setText("2");
        tableRow.addView(button);

        button = new Button(this);
        button.setText("3");
        tableRow.addView(button);

        tableLayout.addView(tableRow);
    }
    setContentView(tableLayout);
person Durim    schedule 08.10.2015
comment
Вы можете добавить цикл for, чтобы добавить 3 кнопки - person Arlind; 08.10.2015
comment
Я сделал некоторые изменения в соответствии с моим требованием, и я был готов к работе... Спасибо, что помогли мне. :) - person Ali_Waris; 10.10.2015

Добавьте приведенный ниже код в метод onCreate() в классе Activity:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    TableLayout tableLayout = new TableLayout(this);
    for (int i = 0; i < 5; i++)
    {
        TableRow tableRow = new TableRow(this);

        for (int j = 0; j < 3; j++)
        {
            Button button = new Button(this);
            button.setText(""+j);
            tableRow.addView(button);
        }

        tableLayout.addView(tableRow);
    }
    setContentView(tableLayout);
}

Код добавит в таблицу пять строк с тремя кнопками с текстом от 1 до 3.

person Arlind    schedule 08.10.2015
comment
Не будут ли параметры макета использоваться при динамическом кодировании графического интерфейса...?? Просто спрашиваю из любопытства... Кроме того, что, если я хочу добавить кнопки таким образом, чтобы у меня было 3 столбца в каждой строке? - person Ali_Waris; 08.10.2015
comment
Да, вы можете использовать TableLayout.LayoutParams. и если вам нужна строка с 3 столбцами, просто добавьте 3 представления в строку таблицы - person Arlind; 08.10.2015
comment
Можно поконкретнее..?? за добавление 3 просмотров в строку...? Потому что я бы добавлял каждую кнопку в каждой итерации цикла... поэтому не мог добавить 3 вида одновременно. Не могли бы вы объяснить на примере? - person Ali_Waris; 08.10.2015
comment
Проверьте ответ ниже - person Arlind; 08.10.2015
comment
@HussainChachuliya скопируйте код и замените им метод Activity onCreate. - person Arlind; 09.10.2015

Добавьте следующий код под методом init():

for (int i = 0; i < GetGlobal.totalrow; i++) {
            TableRow tbrow = new TableRow(this);
            // tbrow.setLayoutParams(tableRowParams);
            TextView t1v = new TextView(this);

            t1v.setText(JSONParser.heading[i].replace('"', ' '));
            t1v.setBackgroundResource(R.drawable.diamond_detail1);
            t1v.setPadding(5, 3, 5, 3);
            t1v.setMinHeight(50);
            t1v.setTypeface(Typeface.SERIF);
            t1v.setTextColor(Color.parseColor("#FFFFFF"));
            t1v.setGravity(Gravity.FILL);
            tbrow.addView(t1v);
person Community    schedule 30.12.2017