2013-03-25 53 views
0

我有一個TableLyout(在XML文件中),我試圖添加表格行。每一行都包含其編號由參數控制的按鈕。TableLayout不工作

每次運行此代碼時,程序都會退出。它應該是一個簡單的任務。出了什麼問題?

的Java:

public class Play extends Activity{ 
int status=0 , timeDelay , row , col; 
TextView score; 
TableRow rows []; 
TableLayout table; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.layout_play); 

    setLevel(); 
    table = (TableLayout)findViewById(R.id.Table_cards); 

    for(int i=0 ; i<row ; i++){ 
     TableRow tblr = new TableRow(this); 
     for(int j=0 ; j<col ; j++){ 
      final ImageButton b = new ImageButton(this); 
      b.setOnClickListener(new OnClickListener() { 

       public void onClick(View v) { 
        b.setBackgroundResource(R.drawable.card_back_blue); 
       } 
      }); 
      b.setBackgroundResource(R.drawable.c1+j); 
      tblr.addView(b); 
     } 
     table.addView(tblr); 
    } 
} 

XML文件:

<TableLayout 
    android:id="@+id/Table_cards" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@id/layout_up" 
    android:background="@drawable/wss" 
    android:gravity="center_vertical" 
    android:orientation="vertical" > 
</TableLayout> 
+1

你是否也可以發佈'setLevel()'和其他支持的函數以及錯誤輸出。 – Shade 2013-03-25 00:28:22

+0

你需要初始化**行**和** col **變量ex:int row = 5,col = 5; – 2013-03-25 05:00:49

回答

0

此代碼工作得很好,

public class Play extends Activity{ 
    private int status=0 , timeDelay , row=10, col=10; 
    private TextView score; 
    private TableRow rows []; 
    private TableLayout table; 
    @Override 
    public void onCreate(Bundle bundle) 
    { 
     super.onCreate(bundle); 
     setContentView(R.layout.table_dynamic); 

//  setLevel(); 
     table = (TableLayout)findViewById(R.id.tableLayout); 

     for(int i=0 ; i<row ; i++){ 
      TableRow tblr = new TableRow(this); 
      for(int j=0 ; j<col ; j++){ 
       final ImageButton b = new ImageButton(this); 
       b.setOnClickListener(new OnClickListener() { 

        public void onClick(View v) { 
//      b.setBackgroundResource(R.drawable.card_back_blue); 
        } 
       }); 
//    b.setBackgroundResource(R.drawable.c1+j); 
       tblr.addView(b); 
      } 
      table.addView(tblr); 
     } 
    } 
} 

和佈局table_dynamic,

<TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tableLayout" 
    android:background="@android:color/black" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
</TableLayout> 
+0

你會考慮添加一些敘述來解釋爲什麼這段代碼有效嗎?是什麼使它成爲這個問題的答案?這對詢問問題的人以及任何其他人來說非常有幫助。 – 2013-03-25 07:08:12

+0

對不起,我會考慮這個。 – 2013-03-25 07:54:13