Intereting Posts
Пробейте отверстие в наложении прямоугольника с ускорением HW, включенным в представлении Превращение строки в Uri … (Android) «Начало тега не закрывается» при комментировании в начале и конце тега элемента XML Что означает // noinspection ForLoopReplaceableByForEach означает? SetBackgroundResource действует отличным от setBackground с помощью RippleDrawable Компилировать и использовать ABI-зависимые исполняемые двоичные файлы в Android с Android Studio 2.2 и CMake Com.google.aaaal 400 Bad Request {"error": "invalid_grant"} при вставке строки в bigquery Как я могу найти сервисы zeroconf (Bonjour) на Android? У меня проблемы с jmDNS Получение базы данных SQLite оболочкой adb в cmd Прямоугольник рисования холста Android Как реализовать плагин cordova-plugin-datepicker для Android? `SetEnterTransition` работает только с` ActivityCompat.startActivity` Модифицировать «Авторизация», «Знаменщик» + токен Извлечение ChildItem из ExpandableListView? Как реализовать двойной щелчок для Android-живых обоев?

Создание представлений программным способом с использованием 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-ресурс в тип вида? Если да, то как мне это сделать?

Я считаю, что вам нужен 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);