3

これは次のXML LinearLayout linlayout.xmlとおりです。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mylinear"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>

追加する数が異なる場合があるTextViewsため、このレイアウトにプログラムで追加したいと考えています。TextViews

アクティビティ コードは次のとおりです。

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.linlayout);

    LinearLayout linear=(LinearLayout) findViewById(R.layout.mylinear);
    TextView [] txt =new TextView[3];

    for(int i=0;i<txt.length;i++)
    {
        txt[i]=new TextView(this);
        txt[i].setText("text "+i);
        txt[i].setLayoutParams(new
         LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
        linear.addView(txt[i]);
    }
}

LogCatエラーは表示されTextViewsませんが、アプリを実行しても表示されません。

私は行を入れようとします:

setContentView(R.layout.linlayout);

最後に、の後にfor、しかし動作しません。

4

2 に答える 2

4

これを使って :

TextView [] txt = new TextView[3];

for (int i=0; i<txt.length; i++) {
    txt[i] = new TextView(YourActivity.this);
    txt[i].setText("text " + i);
    txt[i].setLayoutParams(newLayoutParams
    (LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
    linear.addView(txt[i]);
}
于 2012-10-11T10:23:08.267 に答える
1

ListView を使用することをお勧めします。ところで、レイアウトの向きを縦向きに変更しましたか? しかし、それが必要な場合は、これをお勧めします。特定のサイズの要素があるとします。

final int size = 3; // replace with the size of your element
LinearLayout linear = (LinearLayout) findViewById(R.layout.mylinear);

for(int i=0;i<size;i++){
    final TextView textView = new TextView(this);
    textView.setText("text "+i);
    textView.setLayoutParams(new LayoutParams(
    LayoutParams.FILL_PARENT,
    LayoutParams.WRAP_CONTENT));

    linear.addView(textView);
}
于 2012-10-11T10:28:01.417 に答える