2017-04-11 14 views
-3

こんにちは、TableLayoutにTableRowを追加しようとしています。TableLayoutはxmlファイル内で宣言されています。TableRowsはJavaコードでのみ宣言されています。いくつかの同様の質問がありAltough 、私はそれは私のコードで動作させることができませんでした:プログラムでテーブルレイアウトにテーブル行を追加する方法は?

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

    public class MainActivity extends Activity { 
    TableLayout tableLayout; 
    Button[][] buttons =new Button[9][9]; 
    TableRow tableRow[]=new TableRow[9]; 
    TableRow.LayoutParams layoutParams=new TableRow.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    tableLayout = (TableLayout) findViewById(R.id.tablay); 
    for(int line=0; line<9; line++){ 
     tableRow[line]=new TableRow(this); 
     tableRow[line].setLayoutParams(layoutParams); 
     tableRow[line].setVisibility(View.VISIBLE); 
    } 
    for(int line=0; line<9; line++){ 
     for(int col=0; col<9; col++){ 
      buttons[line][col]=new Button(this); 
      buttons[line][col].setText(""+line+col); 
      buttons[line][col].setLayoutParams(layoutParams); 
      buttons[line][col].setVisibility(View.VISIBLE); 
      tableRow[line].addView(buttons[line][col]); 
     } 
    } 
    for(int i=0; i<9; i++){ 
     tableLayout.addView(tableRow[i], new TableLayout.LayoutParams(
       LayoutParams.MATCH_PARENT, 
LayoutParams.WRAP_CONTENT)); 
} 
setContentView(R.layout.activity_main); 
} 
} 

アプリが常に起動した直後に終了し、私は問題が何であるかを見ることができません。 ご協力いただきありがとうございます!

答えて

0

super.onCreate(savedInstanceState)の後に次の行に移動します。

setContentView(R.layout.activity_main); 
+0

ありがとうございました!今それは動作します – Jonas1902

+0

偉大な、投票し、答えを受け入れる:) – Pehlaj

+0

私は答えを受け入れてupvotedしかし、私は十分な評判を持っていないのでupvoteは公に表示されません – Jonas1902

関連する問題