Intereting Posts
Как установить ограничение на минимальные и максимальные символы для EditText в Android? Перекрестная платформа Java? Android и рабочий стол Поток аудио прекращается через 5 секунд Как создать образцы проектов Android с помощью Ant? Build.xml не существует Создание ярлыка: как я могу работать с drawable как Icon? Android: <поддержка-экраны> Тег Связь между фрагментом и диалогом Сбросить максимальное количество текстовых просмотров Android Как создать прозрачную активность, которая может накладываться на главный экран, но не отбрасывается при нажатии кнопки «домой» или «назад»? Google всегда возвращает истекший идентификатор id (JWT) Какая страна является пользователем в настоящее время? Phonegap – Как сохранить файл .txt в корневом каталоге Android-телефона Как эмулировать эффект виниловой царапины при обработке звука? Не удалось найти модуль с дорожкой Gradle. Вместо ссылки на библиотеку Есть ли эквивалент сеанса http для приложения 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);