Piyush
Piyush

Reputation: 548

Dynamical creation of UI

I want to implement the following layout in code:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/widget92"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent" >

     <Button
          android:id="@+id/widget164"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Button"
          android:layout_alignTop="@+id/widget163"
          android:layout_alignLeft="@+id/widget161" />

     <Button
          android:id="@+id/widget163"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Button"
          android:layout_alignTop="@+id/widget162"
          android:layout_toLeftOf="@+id/widget161" />

     <Button
          android:id="@+id/widget162"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Button"
          android:layout_below="@+id/widget161"
          android:layout_toLeftOf="@+id/widget160" />

    <Button
          android:id="@+id/widget161"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Button"
          android:layout_alignParentTop="true"
          android:layout_toRightOf="@+id/widget160" />

    <Button
          android:id="@+id/widget160"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Button"
          android:layout_alignParentTop="true"
          android:layout_toRightOf="@+id/widget159" />

    <Button
          android:id="@+id/widget159"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Button"
          android:layout_alignParentTop="true"
          android:layout_alignParentLeft="true" />

</RelativeLayout>

Can anyone tell me how to implement this in code. Thanx in advance.

Upvotes: 0

Views: 186

Answers (2)

Joe
Joe

Reputation: 4811

RelativeLayout rl = new RelativeLayout(this);
        LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
        rl.setId(R.id.widget92);

        Button btn = new Button(this);
        btn.setId(R.id.widget164);
        btn.setText("Text");
        lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        lp.addRule(RelativeLayout.ALIGN_TOP, R.id.widget163);
        lp.addRule(RelativeLayout.ALIGN_LEFT, R.id.widget161);
        rl.addView(btn, lp);

        btn = new Button(this);
        lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        ...

        setContentView(rl);

Upvotes: 0

denis.solonenko
denis.solonenko

Reputation: 11775

You can create all UI elements manually with the same hierarchy as in layout xml file.

Say in Activity.onCreate()

onCreate(...) {
    super.onCreate(...);
    RelativeLayout layout = new RelativeLayout(...);
    Button button = new Button(...);
    layout.addView(button);
    setContentView(layout);
}

Upvotes: 2

Related Questions