2011-01-02 7 views
0

定義済みのライナーレイアウト内でテキストビューを使用して線形レイアウトをさらに動的に作成する方法があるかどうかは疑問でした。あなたは私が求めています何の要旨を取得するので、これは私のコードです:出力、すなわち、最初のインスタンスとして:forループを使用してTextViewsで線形レイアウトを作成する

LinearLayout MainLL= (LinearLayout) findViewById(R.id.myLayoutId); 

    for(int i=0; i<5; i++) 
    { 
    LinearLayout childLL= new LinearLayout(this); 
    childLL.setOrientation(LinearLayout.VERTICAL); 
    childLL.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
    childLL.setGravity(Gravity.LEFT); 

TextView text = new TextView(this); 
    text.setText("The Value of i is :"i); 
    text.setTextSize(12); 
    text.setGravity(Gravity.LEFT); 
    text.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
childLL.addView(text); 
MainLL.addView(childLL); 
} 

私の問題は、私は唯一の「0、iの値が」取得していますということです。

任意の助けも

答えて

4

をいただければ幸いあなたは、あなただけで行うことができます別のLinearLayout内部のTextViewをラップする必要はありません。ただ作るあなたがやっている

LinearLayout MainLL= (LinearLayout) findViewById(R.id.myLayoutId); 
    for(int i=0; i<5; i++){ 
TextView text = new TextView(this); 
    text.setText("The Value of i is :"+i); // <-- does it really compile without the + sign? 
    text.setTextSize(12); 
    text.setGravity(Gravity.LEFT); 
    text.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
MainLL.addView(text); 
} 
+0

ありがとうございます。正しい方向に私を指摘しましたが、私は自分の欠陥を理解しました。私はsetContentビューを忘れていました。最後に以下を追加すると、問題が解決しました:this.setContentView(MainLL); – cad8

0

すべてが正しいそれ

childLL.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

他のビューが表示されないため、親のレイアウトが第1のビューで埋められているためです。

とはい

text.setText("The Value of i is :"+i); //add + sign 
0

はい、あなたは大幅のTextViewを包む前に別のLinearLayoutをラップする必要がある場合。 このコードを試してください:すべてのビューが画面に表示されますので、

childLL.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f)); 

これは、ラップのLinearLayoutは同じ重みを持っていることを確認します。

関連する問題