Создание представлений программным способом с помощью XML на Android

Я хочу создать макет интерфейса в XML и вставить его в виде дочернего элемента в существующий вид (он будет вставлен несколько раз).

Например, вот что будет содержать файл XML:

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

Теперь я получаю родительский LinearLayout и теперь хочу добавить этот XML файл в виде дочернего представления, например:

LinearLayout linear = (LinearLayout)findViewById(R.id.myLayout);
//need to create a view object from the xml file
linear.addView(myXmlObject);

Можно ли преобразовать XML-ресурс в тип представления? Если да, как бы я это сделал?

Ответы

Ответ 1

Я считаю, что вы хотите LayoutInflater. Пусть ваш пример XML находится в файле 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);