Создавайте представления программно, используя 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);
Другие вопросы по тегам