2011-07-04 3 views
0

Existe-t-il un moyen de définir l'étendue d'un objet textview dans le code java, au lieu de le faire en xml? J'ai essayé la solution de quelqu'un d'autre d'utiliser LayoutParams. Je ne sais pas si je ne l'ai pas implémenté correctement ou si c'est juste la mauvaise solution ou peut-être que je ne me rends pas compte de ce que mon erreur dans le code est, mais cela provoque le crash de l'application. Toute aide serait appréciée, en postant mon code ci-dessous.Ajustement de la dynamique pour TextView dans TableLayout

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() 
{ 


} 

}

Répondre

0

Avec l'aide du code à ce link, j'accomplir cette question comme ça

`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);` 

tout en créant des lignes dynamiquement à côté du code Java.

Questions connexes