Android - Java - Предопределенные шаблоны XML для использования в коде - PullRequest
0 голосов
/ 18 января 2019

Я пришел из мира HTML / JavaScript в разработку Android, и есть одна вещь, которую я до сих пор не могу понять.

Существует ли какая-либо система шаблонов для разработки под Android на Java?

Я имею в виду, когда я создаю макет в HTML / Javascript, я использую Mustache.js для определения шаблона один раз и использую его в приложении для динамического создания окончательного макета в приложении.

В Java, когда я хочу создать, например, кнопки в цикле, я делаю что-то вроде этого:

for (Int i = 0; i <= 5; i++ {
    Button button = new Button(mContext);
    button.set_some_parameter_here()
    button.set_some_other_parameter_here()
    etc()...

    layout.addView(button);
}

Есть ли способ, как я заранее определяю представление (или весь макет) в XML (с переменными, которые должны быть заменены в цикле Java, например {текст} кнопки), и после этого я только вставляю этот шаблон в цикл в конечную группу просмотра макета

Я знаю, как определить статическое расположение в XML, я спрашиваю, есть ли способ определить XML для будущей динамической печати. ​​

Спасибо.

Jan

1 Ответ

0 голосов
/ 18 января 2019

В случае, если вам нужен динамический список кнопок, вы можете использовать обзор кнопок и перерабатывать каждую кнопку по своему усмотрению.

Отметьте это Пример RecyclerView для Android Studio Пример получения позиции нажатия

И если вы хотите повторно использовать шаблон XML, вы можете использовать ключевое слово include, вот ссылка Повторное использование макетов с

Еще один способ использования предопределенных макетов / видов: вы можете создать свой собственный вид (кнопку) и установить его атрибуты, а затем использовать его. Проверьте приведенный ниже пример - вы можете расширить Button и установить его атрибуты.

public class CustomButton extends Button {
  // Set your parameters    

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...