2011-12-02 10 views
5

内側のテーブルレイアウトを作成し、そこに2列の1行を追加すると、コードに何も表示されません。なぜですか?テーブルレイアウト(アンドロイド)を動的に作成する

は、ここでの主な活動です:

public class TestActivity extends Activity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 
      LayoutParams.WRAP_CONTENT); 
    TextView tv1 = new TextView(this); 
    TextView tv2=new TextView(this); 
    tv1.setLayoutParams(params); 
    tv2.setLayoutParams(params); 
    tv1.setText("Hello1!"); 
    tv2.setText("Hello2!"); 
    TableLayout layoutINNER = new TableLayout(this); 
    layoutINNER.setLayoutParams(params); 
    TableRow tr = new TableRow(this); 
    tr.setLayoutParams(params); 
    tr.addView(tv1); 
    tr.addView(tv2); 
    layoutINNER.addView(tr); 
    LinearLayout main = (LinearLayout)findViewById(R.id.android_main_layout); 
    main.addView(layoutINNER); 
} 
} 

はXML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/android:main_layout" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
</LinearLayout> 

UPDATE:最後に、私はこの問題を解決し

まあ、それはちょうどTableRow.LayoutParamsを使用するために必要でしたLinearLayout.LayoutParamsやその他のものではないTextViewsで

+0

はあなた 'TextViews'と' TableRow'のために代わりに 'TableLayout.LayoutParams'を使用してみましたか? – kaspermoerch

+0

最近試したこともありません – user1049280

+0

あなたが探しているもの:http://www.warriorpoint.com/blog/2009/07/01/android-creating-tablerowrows-inside-プログラム可能な/テーブルレイアウト - – OrhanC1

答えて

2

ここでは、作業コードです:

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.LinearLayout; 
import android.widget.LinearLayout.LayoutParams; 
import android.widget.TableLayout; 
import android.widget.TableRow; 
import android.widget.TextView; 

public class TestActivity extends Activity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_test); 
    LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 
      LayoutParams.WRAP_CONTENT); 
    TextView tv1 = new TextView(this); 
    TextView tv2=new TextView(this); 
    android.widget.TableRow.LayoutParams trparams = new TableRow.LayoutParams(android.widget.TableRow.LayoutParams.WRAP_CONTENT, android.widget.TableRow.LayoutParams.WRAP_CONTENT); 
    tv1.setLayoutParams(trparams); 
    tv2.setLayoutParams(trparams); 
    tv1.setText("Hello1!"); 
    tv2.setText("Hello2!"); 
    TableLayout layoutINNER = new TableLayout(this); 
    layoutINNER.setLayoutParams(params); 
    TableRow tr = new TableRow(this); 

    tr.setLayoutParams(params); 
    tr.addView(tv1); 
    tr.addView(tv2); 
    layoutINNER.addView(tr); 
    LinearLayout main = (LinearLayout)findViewById(R.id.android_main_layout); 
    main.addView(layoutINNER); 
} 
} 
関連する問題