1

私のlayout.xmlファイルは次のようになります。

<ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scrollView1"
        android:layout_width="fill_parent"
        android:layout_height="270dp"
        android:layout_weight="0.47" >

        <LinearLayout
            android:id="@+id/linearLayout2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
        </LinearLayout>

    </ScrollView>

次のコードを使用して、ループ内にTextViewsとsを作成します。Buttonfor

  View linearLayout =  findViewById(R.id.linearLayout2);


for (int i=0 ; i<10; i++){
     TextView textview = new TextView(this);
     textview.setText("Text view" + i);
     textview.setId(i);

     textview.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
     ((LinearLayout) linearLayout).addView(textview);


    Button button = new Button(this);
    button.setText("View");
    button.setId(i);
    int width=90;
    int height=60;
    button.setLayoutParams(new LayoutParams(width, height));
    ((LinearLayout) linearLayout).addView(button);

}

Button以下のTextViewを取得しています。LinearLayout誰かがこれを置き換えて、とを並べてRelativeLayout取得するのを手伝ってもらえますか?TextViewButton

4

4 に答える 4

6

レイアウトを変更して、 :のRelativeLayout代わりに使用できるようにします。LinearLayout

<ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scrollView1"
        android:layout_width="fill_parent"
        android:layout_height="270dp"
        android:layout_weight="0.47" >

        <RelativeLayout
            android:id="@+id/relativeLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            >
        </RelativeLayout>

</ScrollView>

次に、これを試して、TextViewsとButtonsを同じ行に配置します。

    RelativeLayout rl = (RelativeLayout) findViewById(R.id.relativeLayout);
    for (int i = 0; i < 10; i++) {
        Button button = new Button(this);
        button.setText("View" + i);
        button.setId(1000 + i);
        int width = 90;
        int height = 60;

        TextView textview = new TextView(this);
        textview.setText("Text view" + i);
        textview.setId(2000 + i);

        if (i == 0) {
            RelativeLayout.LayoutParams rlp2 = new RelativeLayout.LayoutParams(
                    RelativeLayout.LayoutParams.FILL_PARENT,
                    RelativeLayout.LayoutParams.WRAP_CONTENT);
            rlp2.addRule(RelativeLayout.ALIGN_PARENT_TOP);
            rlp2.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
            textview.setLayoutParams(rlp2);
            rl.addView(textview);
            RelativeLayout.LayoutParams rlp1 = new RelativeLayout.LayoutParams(
                    width, height);
            rlp1.addRule(RelativeLayout.ALIGN_PARENT_TOP);
            rlp1.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
            button.setLayoutParams(rlp1);
            rl.addView(button);
        } else {
            RelativeLayout.LayoutParams rlp2 = new RelativeLayout.LayoutParams(
                    RelativeLayout.LayoutParams.FILL_PARENT,
                    RelativeLayout.LayoutParams.WRAP_CONTENT);
            rlp2.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
            rlp2.addRule(RelativeLayout.BELOW, button.getId() - 1);
            textview.setLayoutParams(rlp2);
            rl.addView(textview);
            RelativeLayout.LayoutParams rlp1 = new RelativeLayout.LayoutParams(
                    width, height);
            rlp1.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
            rlp1.addRule(RelativeLayout.BELOW, button.getId() - 1);
            button.setLayoutParams(rlp1);
            rl.addView(button);
        }
    }
于 2012-04-11T18:58:44.723 に答える
0
 View linearLayout =  findViewById(R.id.linearLayout2);


for (int i=0 ; i<10; i++){
     TextView textview = new TextView(this);
     textview.setText("Text view" + i);
     textview.setId(i);

     textview.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
     ((LinearLayout) linearLayout).addView(textview);


    Button button = new Button(this);
    button.setText("View");
    button.setId(i);
    int width=90;
    int height=60;
    button.setLayoutParams(new LayoutParams(width, height));
    ((LinearLayout) linearLayout).addView(button);

}

上記を以下のコードに置き換えます::

LinearLayout linearLayout =  (LinearLayout)findViewById(R.id.linearLayout2);
for (int i=0 ; i<10; i++){
LinearLayout l = new LinearLayout(this);
l.setOrientation(LinearLayout.HORIZONTAL);

TextView textview = new TextView(this);
textview.setText("Text view" + i);
textview.setId(i);

l.addView(textview);
Button button = new Button(this);
button.setText("View");
button.setId(i);
button.setWidth(90);
button.setHeight(60);
l.addView(button);
linearLayout.addView(l);//if you want you can layout params linearlayout
}
于 2012-04-11T17:42:12.563 に答える
0

を使用してLinearLayoutを定義しているため、上下android:orientation="vertical"に配置される傾向があります。

テキストビューとボタンを個々の線形レイアウトに追加し、向きを水平にして、このlinearLayoutを元の垂直LinearLayoutに追加します。

編集:次のことを試してください:

View linearLayout =  findViewById(R.id.linearLayout2);

for (int i=0 ; i<10; i++){
 View indiLyt = new View(this);
 indiLyt.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
 indiLyt.setOrientation(LinearLayout.HORIZONTAL);

 TextView textview = new TextView(this);
 textview.setText("Text view" + i);
 textview.setId(i);

 textview.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
 ((LinearLayout) indiLyt).addView(textview);

 Button button = new Button(this);
 button.setText("View");
 button.setId(i);
 int width=90;
 int height=60;
 button.setLayoutParams(new LayoutParams(width, height));
 ((LinearLayout) indiLyt).addView(button);
 ((LinearLayout) linearLayout).addView(indiLyt);
}
于 2012-04-11T18:11:48.893 に答える
0

この解決策を試してください::;

プロジェクトのres/layoutに以下のような新しいxmlファイルを作成します。

これをlinear.xmlとして保存します

< LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/linear"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
            android:orientation="horizontal" >

        <TextView
            android:id="@+id/text"
            android:layout_width=" wrap_content "
            android:layout_height=" wrap_content " />
<Button            android:id="@+id/button"
            android:layout_width="90dp"
            android:layout_height="60dp" />
    </ LinearLayout >

および以下のコード:::

LinearLayout linearLayout =  (LinearLayout)findViewById(R.id.linearLayout2);
LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService
      (Context.LAYOUT_INFLATER_SERVICE);

for (int i=0 ; i<10; i++){
View view = inflater.inflate(R.layout.linear,null);
view.findViewById(R.id.text).setText("Text view" + i);
view.findViewById(R.id.text).setTextColor(Color.BLUE);
view.findViewById(R.id.button).setText(“View");
view.findViewById(R.id.button).setTextColor(Color.BLUE);
linearLayout.addView(view);
}
于 2012-04-11T18:20:02.170 に答える