2011-11-09 3 views
1

콘텐츠가 몇 개의 버튼과 TableLayout이있는 레이아웃으로 설정된 클래스가 있습니다.Android TableLayout not displayed

TableLayout을 만드는 실제 작업은 원하는 정적 테이블을 반환하는 메서드가있는 별도의 정적 도우미 클래스에 있습니다.

그러나 테이블이 표시되지 않습니다. 수치스럽고 단순한 사실은 내가 누락 되었습니까? TableLayout 도우미 클래스를 반환

public class TableHelper { 

    public static TableLayout getTable_BINARY_NUMBERS(Context context, int numRows, int numCols) { 

     TableLayout table = new TableLayout(context); 

     table.setStretchAllColumns(true); 
     table.setShrinkAllColumns(true); 

     TableRow[] rows = new TableRow[numRows]; 
     for (int row=0; row<numRows; row++) { 
      rows[row] = new TableRow(context); 

      for (int col=0; col<numCols-1; col++) { 
       TextView num = new TextView(context); 
       num.setText("0"); 
       rows[row].addView(num); 
      } 
      TextView rowText = new TextView(context); 
      rowText.setText("Row " + (row + 1)); 
      rowText.setTextAppearance(context, android.R.style.TextAppearance_Small); 
      rows[row].addView(rowText); 
      rows[row].setPadding(0, 50, 0, 0); 
      table.addView(rows[row]); 
     } 
     return table; 
    } 
} 

답변

1

새 테이블 레이아웃을 반환하는 대신 즉시 얻은 테이블 레이아웃을 getTable_BINARY_NUMBERS()에 전달하고 완전히 새로운 테이블 레이아웃을 반환하는 대신 메소드에서 수정하십시오.

+0

그게 할거야, 고마워. – Allen

1

는 : 여기

public class TesterActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     TableLayout table = (TableLayout) findViewById(R.id.table); 
     table = TableHelper.getTable_BINARY_NUMBERS(getApplicationContext(), 5, 25); 
    } 
} 

를 테이블의 고기를 생성하는 도우미 클래스입니다 : 여기

는 내용이 레이아웃에 설정되어있는 클래스 보고있는 TableLayout과 같지 않습니다.

setContentView(R.layout.main); 변수 테이블에 할당하는 TableLayout의 인스턴스가 만들어집니다. 도우미 클래스에서 오는 TableLayout은 다른 인스턴스입니다.

+0

그래서 헬퍼 클래스 메서드에 인수로 테이블을 전달해야합니까? – Allen

+0

정확히 무엇을 하려는지 확실하지 않습니다. 하지만 나중에 '테이블'을 통과하면 도움이 될 것입니다. – 500865