1

I have the following layout and am trying to figure out how to programmatically generate it on the onCreate method. I have found many posts on inserting a predefined xml layout into another layout, but nothing on how to do this all programmatically. Please forgive me if this is a noob question, I am still learning this platform.

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

        <TableLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="10dp" >

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/table_row_selector"
                android:minHeight="20dp"
                android:layout_gravity="top"
                android:paddingBottom="5dp"
                android:layout_marginBottom="3dp" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:text="Team 1"
                    android:id="@+id/textView6"
                    android:layout_column="6"
                    android:textColor="#000000" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:text="Wins: 0"
                    android:id="@+id/textView13"
                    android:layout_column="2"
                    android:textColor="#000000" />

            </TableRow>

            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/table_row_selector"
                android:minHeight="40dp"
                android:paddingBottom="5dp"
                android:layout_marginBottom="3dp"
                android:layout_gravity="top" >

                <ImageView
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:id="@+id/imageView5"
                    android:layout_column="2"
                    android:layout_gravity="center_vertical"
                    android:src="@mipmap/jsnow"
                    android:padding="2dp" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:text="Jon Snow"
                    android:id="@+id/textView5"
                    android:layout_column="6"
                    android:layout_gravity="center_vertical"
                    android:layout_marginLeft="10dp"
                    android:fontFamily="sans-serif-light" />

                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:text="^"
                    android:id="@+id/button9"
                    android:layout_column="13"
                    android:textSize="10dp"
                    android:layout_gravity="center_vertical" />

                <Button
                    style="?android:attr/buttonStyleSmall"
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:text="V"
                    android:id="@+id/button10"
                    android:layout_column="13"
                    android:textSize="10dp"
                    android:layout_gravity="center_vertical" />

            </TableRow>

        </TableLayout>

    </LinearLayout>

</ScrollView>

1 Answers1

1

In your Activity simply call getLayoutInflater() and then use that inflater to inflate certain layout using R.layout - as a result you'll get a View.

If that View is LinearLayout (or some other ViewGroup) cast it to ViewGroup and you'll have addView method to insert child views into it.

In case you want to use certain layout as main view in Activity it's even simpler, just do:

setContentView(R.layout.your_layout);

See Android Layouts tutorial for more details.

And this question/answer shows how to access LayoutInflater (from anywhere really):

Call to getLayoutInflater() in places not in activity

Community
  • 1
  • 1
nikib3ro
  • 20,366
  • 24
  • 120
  • 181