38

I want to create a UI layout in XML and have it inserted as a child into an existing view (It will be inserted multiple times).

For example, here is what the XML file will contain:

<RelativeLayout
    android:id="@+id/relativeLayout1" >
    <Button android:id="@+id/myButton"
        android:text="@string/mystring" />
</RelativeLayout>

Now I get the parent LinearLayout and now want to add that XML file as a child view, e.g:

LinearLayout linear = (LinearLayout) findViewById(R.id.myLayout);

// need to create a view object from the xml file
linear.addView(myXmlObject);

Is it possible to convert an XML resource to a view type? If so, how would I do this?

John
  • 185
  • 2
  • 14
Stuyvenstein
  • 2,340
  • 1
  • 27
  • 33

1 Answers1

102

I believe you want the LayoutInflater. Let's say your example XML is in a file custom_layout.xml:

LayoutInflater inflater = LayoutInflater.from(context);
RelativeLayout layout = (RelativeLayout) inflater.inflate(R.layout.custom_layout, null, false);

LinearLayout linear = (LinearLayout)findViewById(R.id.myLayout);
linear.addView(layout);
Sam
  • 86,580
  • 20
  • 181
  • 179