2012-05-02 2 views
2

main xml 레이아웃에 설명 된 테이블이 있습니다. 각 테이블 행에 레이아웃을 설정할 기회가 있으면 매번 다시 작성하지 않아도됩니다. 레이아웃이 단순한 곳에서는 코드로 할 수 있지만 레이아웃은 꽤 복잡합니다. 이 방법으로 같은Android : 테이블 행에 xml 레이아웃을 설정 하시겠습니까?

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.ebank_saskaitos); 
    this.setFirstBlock(); 
} 



private void setFirstBlock() { 
    TableLayout ll = (TableLayout) findViewById(R.id.first_block); 
    ll.addView(this.tableChild()); 

} 

private TableRow tableChild() { 
    TableRow tr = new TableRow(this); 

    //row implementation 

    return tr; 
} 

답변

4

사용 LayoutInflater :

private View tableChild() { 
    TableRow tr = new TableRow(this); 
    View v = LayoutInflater.from(mContext).inflate(R.layout.layout_for_my_table_row, tr, false); 
    //want to get childs of row for example TextView, get it like this: 
    TextView tv = (TextView)v.findViewById(R.id.my_row_text_view); 
    tv.setText("This is another awesome way for dynamic custom layouts."); 
    return v;//have to return View child, so return made 'v' 
} 
+0

내가 레이아웃 구성 요소에 도달 할 경우, 나는 ('(SomeView) SM = (SomeView) v.findViewById 같은 R.some 그들에 도달해야 .id);'? –

+0

예! 정확히 내가 대답을 편집했는지 확인하십시오. –

+0

내가 제안한대로 구현했지만, 행을 만들 때 아무 것도 표시되지 않으며 레이아웃에도 텍스트 뷰와 버튼이 있습니다. –