2012-05-02 1 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

あなたが提案したように実装しましたが、行を作成すると何も表示されません。レイアウトにもテキストビューやボタンがあります。 –

関連する問題