Динамическая настройка диапазона для TextView в TableLayout

Есть ли способ установить диапазон объекта textview в java-коде вместо того, чтобы делать это в xml? Я попробовал чужое решение с использованием LayoutParams. Я не знаю, правильно ли я это реализовал, или это просто неправильное решение, или, может быть, я просто не понимаю, в чем моя ошибка в коде, но это вызывает сбой приложения. Любая помощь будет оценена по достоинству, я публикую свой код ниже.

package com.szymon.atrium;

import java.util.ArrayList;
import java.util.GregorianCalendar;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TableRow.LayoutParams;


public class TapeChart extends Activity
{
private ArrayList<Room> rooms;
private ArrayList<Arrival> arrivals;
private GregorianCalendar startDate = new GregorianCalendar(2011,1,1);
private GregorianCalendar endDate = new GregorianCalendar(2011,1,10);
private ArrivalGrid grid = new ArrivalGrid(arrivals, rooms, startDate.getTime(), endDate.getTime());

private ArrayList<ArrayList<Cell>> displayArrival = grid.displayArrivalGrid();
private ArrayList<ArrayList<Cell>> displayRooms = grid.displayRoomGrid();

@Override
public void onCreate(Bundle bundle)
{
    super.onCreate(bundle);
    setContentView(R.layout.tape);

    TableLayout tbl = (TableLayout)findViewById(R.id.tapeChart);

    for(ArrayList<Cell> a : displayRooms)
    {
        TableRow newRow = new TableRow(this);

        for(Cell c : a)
        {
            LayoutParams param = new LayoutParams();
            param.span=c.getColSpan();

            MyTextView cell = new MyTextView(this);
            cell.setText(c.getContent());
            cell.setLayoutParams(param);

            newRow.addView(cell);
        }

        tbl.addView(newRow);
    }
}

public TableLayout getArrivalsTableLayout()
{

    return null;
}

public void getRoomTableLayout()
{


}

}


person Szymon    schedule 04.07.2011    source источник


Ответы (1)


С помощью кода по этой ссылки я решить эту проблему так

 `TableRow.LayoutParams rowSpanLayout = new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT);
  rowSpanLayout.span = 3;
  TextView textView = new TextView(this);
  textView.setText("Text Title");
  tableRow.addView(textView, rowSpanLayout);` 

при динамическом создании строк на стороне кода Java.

person crazywood    schedule 26.07.2011