2012-06-23 2 views
0

Im пытается динамически создать TableLayout. Я хочу создать строки и столбцы 3X3.Как создать TableLayout в андроиде динамически?


public class PortAFareActivity extends Activity { 

@Override 

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    TableLayout seatTable=new TableLayout(this);   
    ImageButton[][] seatButton=new ImageButton[3][3]; 
    seatTable.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); 
    TableRow[] seatRow=new TableRow[3];   
    for (int i = 0; i < 3; i++) { 
     seatRow[i]=new TableRow(this); 
     seatRow[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));   
     for (int j = 0; j < 3; j++) {    
      seatButton[i][j]=new ImageButton(this); 
      seatButton[i][j].setImageResource(R.drawable.seat);    
      seatButton[i][j].setLayoutParams(new LayoutParams(50,30)); 
      seatRow[i].addView(seatButton[i][j]); 
     } 
     seatTable.addView(seatRow[i]); 
    } 
    LinearLayout lin=(LinearLayout)findViewById(R.id.linLayout); 
    lin.addView(seatTable,new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); 
    lin.invalidate(); 
    Toast.makeText(this, " "+seatTable.getChildCount() , Toast.LENGTH_SHORT).show();  
} 
} 

Мой файл макета XML содержит LinearLayout с идентификатором linLayout

Любая помощь будет оценена. =)

+0

У меня есть пост ответить проблему с LayoutParams ... –

ответ

0

попробовать это будет работать

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.registration); 

    TableLayout seatTable=new TableLayout(this); 
    ImageButton[][] seatButton=new ImageButton[3][3]; 
    seatTable.setBackgroundColor(Color.RED); 
    seatTable.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); 
    TableRow[] seatRow=new TableRow[3]; 
    for (int i = 0; i < 3; i++) { 
     seatRow[i]=new TableRow(this); 
     seatRow[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 
     for (int j = 0; j < 3; j++) { 
      seatButton[i][j]=new ImageButton(this); 
      seatButton[i][j].setImageResource(R.drawable.seat); 
      //seatButton[i][j].setLayoutParams(new LayoutParams(50,30));//<--------problem 
      seatRow[i].addView(seatButton[i][j]); 
     } 
     seatTable.addView(seatRow[i]); 
    } 
    LinearLayout lin=(LinearLayout)findViewById(R.id.linLayout); 
    lin.addView(seatTable);//<-------- not the problem but not required 
    lin.invalidate(); 
    Toast.makeText(this, " "+seatTable.getChildCount() , Toast.LENGTH_SHORT).show(); 
} 
+0

я пометил проблемную строку с <--------- –

+0

Спасибо приятеля ! спасибо тонну =) –

+0

Всегда приветствую ... :) –

Смежные вопросы