2013-11-20 2 views
2

В моем приложении Android у меня есть таблица. Я хочу динамически вставлять строки. Но проблема заключается в том, что строки добавляются горизонтально. Я хочу, чтобы каждый таблеток располагался вертикально. У меня это до сих пор:Как добавить новую строку динамически в макет таблицы

TableLayout mytable = (TableLayout)findViewById(R.id.studentContainer); 

    TableRow tablerow = new TableRow(this); 
    tablerow.setOrientation(TableRow.VERTICAL); 
    EditText g = new EditText(this); 
    g.setText("AAAAAAAAA"); 
    g.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT)); 
    EditText g2 = new EditText(this); 
    g2.setText("BBBBBBBBBB"); 
    g2.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT)); 
    tablerow.addView(g); 
    tablerow.addView(g2); 
    mytable.addView(tablerow, new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT)); 

    TableRow tablerow2 = new TableRow(this); 
    tablerow2.setOrientation(TableRow.VERTICAL); 
    EditText g4 = new EditText(this); 
    g4.setText("AAAAAAAAA"); 
    g4.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT)); 
    EditText g5 = new EditText(this); 
    g5.setText("BBBBBBBBBB"); 
    g5.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT)); 
    tablerow.addView(g4); 
    tablerow.addView(g5); 
    mytable.addView(tablerow2, new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT)); 

XML

  <TableLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:id="@+id/studentContainer" > 
      </TableLayout > 

Кто-нибудь здесь знают, что не так?

Благодаря

ответ

0

Лучше у вас есть элемент таблицы строки в XML, раздуть в качестве нового взгляда и установить данные соответственно.

затем добавить этот вид в макете таблицы

+1

Я установил вопрос, я имел неправильное имя переменной. Но теперь у меня есть новая проблема, как я могу намотать вес на столбе? Поэтому я хочу сделать второй экран заполнения столбцов. – omega

+0

Вы можете установить весы программно следующим образом: новый TableLayout.LayoutParams (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f) –

1

Попробовать поставить первую строку в XML и вращать всю таблицу, редактировать text_views при необходимости. Как это

XML

<TableLayout 
    android:id="@+id/list_tableLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="10dp" 
    android:rotation="-90" 
    android:stretchColumns="0,1,2,3" > 

<TableRow 
    android:id="@+id/tableRow1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

<TextView 
       android:id="@+id/textView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:text="Column1" 
       android:textColor="#000000"/> 

<TextView 
       android:id="@+id/textView2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:text="Column2" 
       android:textColor="#000000"/> 

<TextView 
       android:id="@+id/textView3" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:text="Column3" 
       android:textColor="#000000"/> 

<TextView 
       android:id="@+id/textView4" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:text="Column4" 
       android:textColor="#000000"/> 

</TableRow> 
</TableLayout> 

, а затем код, как этот

TableRow tr = new TableRow(this); 
       tr.setPadding(0,20,0,20); 
       tr.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 

       TextView tv_item1 = new TextView(this); 
       TextView tv_item2 = new TextView(this); 
       TextView tv_item3 = new TextView(this); 
       TextView tv_item4 = new TextView(this); 

       tv_item1.setText(M_Number); 
       tv_item1.setGravity(Gravity.CENTER); 


       tv_item2.setText(M_Number); 
       tv_item2.setGravity(Gravity.CENTER); 

       tv_item3.setText(M_Number); 
       tv_item3.setGravity(Gravity.CENTER); 

       tv_item4.setText(M_Number); 
       tv_item4.setGravity(Gravity.CENTER); 

       tr.addView(tv_item1); 
       tr.addView(tv_item2); 
       tr.addView(tv_item3); 
       tr.addView(tv_item4); 

Table.addView(tr, new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
Смежные вопросы