de-vraag
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 gunboatmedia
gunboatmedia
Вопрос

Android с использованием макетов в качестве шаблона для создания нескольких экземпляров макета

Итак, я понимаю, как использовать тег include, но у меня возникла проблема.

В основном я хочу иметь макет, определенный в xml, который содержит пару TextView s и ImageView . Затем я хочу выполнить итерацию по массиву и заполнить поля в макете xml в зависимости от того, что в массиве (который заполняется во время выполнения). Таким образом, создание нескольких копий макета xml и заполнение полей уникальными данными. Теперь я понятия не имею, как вы можете повторно использовать этот LinearLayout таким образом, как в TextView и ImageView s внутри него есть постоянный id, и мне нужно сделать несколько копий этого макета.

Есть ли способ раздуть ресурс, а затем сделать его копию, которая будет работать ... Итак

LinearLayout one = new LinearLayout(inflater.inflate(R.layout.home, container, false));

^ К сожалению, такого конструктора нет.

Единственный способ сделать это все программно, но я предпочел бы иметь свойства представлений и LinearLayout в xml, а не в коде. Это похоже на то, что я хочу, чтобы LinearLayout был шаблоном, который вы можете сделать копиями, я думаю ... На самом деле не уверен, что это возможно.

25 2011-10-27T13:27:08+00:00 2
Milad Faridnia
Milad Faridnia
Редактировал вопрос 4-го октября 2016 в 5:51
Программирование
android
xml
layout
reusability
Craigy
27-го октября 2011 в 2:02
2011-10-27T14:02:17+00:00
Дополнительно
Источник
Редактировать
#56789260

Вы можете легко это сделать, вам просто нужно сломать его. Сначала загрузите макет, в который вы хотите вставить свои динамические представления. Затем вы раздуваете свой подъярус и заполняете его столько раз, сколько вам нужно. Затем вы добавляете представление в родительский макет и, наконец, устанавливаете представление содержимого операции в родительский вид.

Вот пример:

    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    LinearLayout parent = (LinearLayout) inflater.inflate(R.layout.main,
            null);

    for (int i = 0; i < 3; i++) {
        View custom = inflater.inflate(R.layout.custom, null);
        TextView tv = (TextView) custom.findViewById(R.id.text);
        tv.setText("Custom View " + i);
        parent.addView(custom);
    }

    setContentView(parent);

вот файл main.xml, который я вставляю в:

<?xml version="1.0" encoding="utf-8"?>



и вот представление custom.xml, которое я раздуваю, заполняю и динамически вставляю:

<?xml version="1.0" encoding="utf-8"?>


    

        

        
    


Надеюсь, этот пример поможет!

42
0
ajuser
16-го февраля 2014 в 2:52
2014-02-16T14:52:10+00:00
Дополнительно
Источник
Редактировать
#56789261

Чтобы annyone все еще искал аналогичное решение, очевидно, вы также можете использовать include непосредственно в xml и по-прежнему иметь возможность ссылаться на них в коде:

LinearLayout row1 = (LinearLayout) findViewById(R.id.row1)
TextView text1 = row1.findViewById(R.id.text);

LinearLayout row2 = (LinearLayout) findViewById(R.id.row2)
TextView text2 = row2.findViewById(R.id.text);

Source: Romain Guy

7
0
Похожие сообщества 18
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
18 324 пользователей
Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. Размещение бесплатное. 📌 ВАЖНО: Правила публикации и правила канала: 📌 Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-12-10
Открыть telegram
StartAndroid Ru Chat
StartAndroid Ru Chat
2 928 пользователей
Android чат сайта startandroid.ru Канал - @startandroid
Открыть telegram
Android Architecture
Android Architecture
2 785 пользователей
Русскоязычный чат для обсуждения архитектуры Android приложений. У нас атмосфера взаимопомощи и уважения друг к другу! Общий чат по Android: @android_ru Чат для вакансий: @mobile_jobs Подробнее: https://telegra.ph/Android-Architecture-06-02
Открыть telegram
AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
1 656 пользователей
Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно 1раз в 2 недели ставьте в тексте тег #vacancy. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov Флудить тут @pogromista
Открыть telegram
Android Declarative
Android Declarative
1 634 пользователей
Чат русскоязычного android-сообщества, посвященный декларативным UI-фреймворкам: Jetpack Compose, Anko, Anvil, Litho, Splitties за оффтопик пожизненная ссылка в @android_ru @jetpack_compose - новости https://bit.ly/32pRDWm - примеры компонентов
Открыть telegram
Android ROM Development
Android ROM Development
1 596 пользователей
Discussion about Android ROM development and testing. App development group: 🖥 https://t.me/joinchat/CiGS0z9LkBPQ_8gjz3eAdA
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Roxana Elizabeth CASTILLO Avalos
Зарегистрирован 4 дня назад
2
Hideo Nakagawa
Зарегистрирован 5 дней назад
3
Sergiy Tytarenko
Зарегистрирован 1 неделю назад
4
shoxrux azadov
Зарегистрирован 1 неделю назад
5
Koreets Koreytsev
Зарегистрирован 1 неделю назад
KO
© de-vraag 2022
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией